Jump to content

Ganhe $$$ escrevendo tutoriais para nós!


Foto

Autenticação VB6 + Access

Login e senha vb6




  • Faça login para responder
8 respostas neste tópico

#1 galeraaaaa!!

galeraaaaa!!
  • Participante
  • 140 mensagens

Publicado 19 June 2012 - 11:38 AM

Bom dia a todos,

Estou fazendo o formulario de login e senha no VB6 usando o banco de dados do access ( código a baixo) , só que na hora que eu estou executado o aplicativo de login aparece a msn abaixo.

Nome do BD do Access = Usuarios
Tabela = Senha
Campos = Login e Senha


alguém pode me ajudar com o código ou me informar onde que esta o erro ??


1 - Mensagem de erro ao executar o Formulario login!

RUN-TIME ERROR 3709

A Conexão nao pode ser usada para realizar esta operação. Ela esta fechada ou é invalida neste contexto.


2 - Código de login

Dim rs As New ADODB.Recordset


Private Sub cmdok_Click()

If rs.State = adStateOpen Then
rs.Close
End If
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Open "select * from computadores where login= '" & txtUserName.Text & "' and senha='" & txtPassword.Text & "'", CN1
'RS.Open "select * from "
If rs.RecordCount > 0 Then
Unload Me
frmCadastro.Show
Else
MsgBox "Login inválido ", vbCritical, "Atendimento"
End If

End Sub




#2 nickosoft

nickosoft

    Hardware Expert

  • Colaborador
  • 3377 mensagens

Publicado 19 June 2012 - 12:42 PM

se o banco é como você disse q é, de onde tirou esse computadores aqui? decara é o q vejo, nao uso vb6 tem bem uns 8 anos, noa é facil lembrar
rs.Open "select * from computadores where login= '" & txtUserName.Text & "' and senha='" & txtPassword.Text & "'", CN1
VB.Net & C#

#3 galeraaaaa!!

galeraaaaa!!
  • Participante
  • 140 mensagens

Publicado 19 June 2012 - 04:25 PM

desculpa ai... onde que esta escrito computadores é na verdade USUARIOS ! E o nome usuarios é o meu Bando de Dados do Access !!

Porque sera q esta dando a msn

A Conexão nao pode ser usada para realizar esta operação. Ela esta fechada ou é invalida neste contexto.

#4 nickosoft

nickosoft

    Hardware Expert

  • Colaborador
  • 3377 mensagens

Publicado 19 June 2012 - 08:07 PM

mas continua errado, nao é no select q você especifica o nome banco de dados....
select (campos) from (tabela) ai agora tudo depente....pode ter criterios e mais uma porrada de coisas pra pesquisa....

Dim ad as ADODB.Connection
set ad=New ADODB.Connection
Let ad.ConnectionString= "ODBC;DSN=" & nomeBancoDados & ";UID=" & nomUsuario & ";PWD=" & senha
ad.Open
dim ar as ADODB.recordset
set rs=new adodb.recordset
rs.open (instrução SQL)
nao me lembro bem, mas é por ai q se abre um banco de dados...essa é so uma das formas em vb6 tem pelo menos 3 muito comuns...
VB.Net & C#

#5 galeraaaaa!!

galeraaaaa!!
  • Participante
  • 140 mensagens

Publicado 21 June 2012 - 03:38 PM

Nickosoft eu mudei um pouco o cód (abaixo ) e já estou conseguindo abrir o BD, só que agora esta dando o erro baixo:

BD = Computadores
TB = Usuarios
Campos = Login e Senha


Dim con As ADODB.Connection, rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset

con.Open "provider =Microsoft.jet.oledb.4.0;data source =c:\agenda\computadores.mdb"
If rs.State = adStateOpen Then
If txtUserName.Text = "" Then MsgBox "Digite a sua Login acesso", vbInformation, "Aviso": txtUserName.SetFocus: Exit Sub
If txtPassword.Text = "" Then MsgBox "Digite a sua Senha acesso", vbInformation, "Aviso": txtPassword.SetFocus: Exit Sub
con.Open
End If
con.CursorLocation = adUseClient


rs.Open "SELECT login, senha (*) FROM Usuarios = 'login '" & txtUserName.Text & "' and senha='" & txtPassword.Text & "'", con, adOpenKeyset, adLockReadOnly
If rs.RecordCount > 0 Then
Unload Me
frmCadastro.Show
Else
MsgBox "Login inválido ", vbCritical, "Atendimento"
rs.Close
con.Close
Set rs = Nothing
Set con = Nothing
End If
End Sub


ERRO ESTA NA LINHA VERMELHA = ERRO DE SINTAXE NA CLÁUSULA FROM.
Como você acha q deveria ficar a linha de comando ??

Att.

Alexandre

#6 nickosoft

nickosoft

    Hardware Expert

  • Colaborador
  • 3377 mensagens

Publicado 21 June 2012 - 08:17 PM

rs.Open "SELECT login, senha (*) FROM Usuarios = 'login '" & txtUserName.Text & "' and senha='" & txtPassword.Text & "'"

ou você especifica campo por campo q quer buscar ou entra com * pra todos....
depois do from você especifica a tabela.....
e depois de especificada a tabela você usa o WHERE (onde)
select * from usuarios where login=' " & txtusername.text & " ' and senha = ' " & txtpassword.text & " ' "
seleciona todos os campos da tabela usuarios onde campo login for igual ao txtusername e o campo senha for igual a txtpassword

nao precisa espacar entre as aspas simples e as duplas, so fiz assim pra ficar melhor de ver.....fiz a linha dessa forma imaginando q os campos na tabela sejam esses ai...o restante da linha pode manter
VB.Net & C#

#7 galeraaaaa!!

galeraaaaa!!
  • Participante
  • 140 mensagens

Publicado 22 June 2012 - 11:02 AM

Na linha que você me passou eu nao preciso acresentar a opção Open e também as aspas antes da palavra select ??

pois quando eu mandou executar esta a linha do cód q você me passou esta dando o seguinte erro :

select * from usuarios where login=' " & txtusername.text & " ' and senha = ' " & txtpassword.text & " ' "

nas aspas ( vermelho ) esta dando o erro EXPECTED = CASE

#8 nickosoft

nickosoft

    Hardware Expert

  • Colaborador
  • 3377 mensagens

Publicado 22 June 2012 - 03:24 PM

passei so o select, o restante você tem q manter....
e mesmo assim pode ser modificado e adequado a cada caso...
VB.Net & C#

#9 galeraaaaa!!

galeraaaaa!!
  • Participante
  • 140 mensagens

Publicado 24 July 2012 - 09:42 PM

Obrigado pela atenção.. Problema resolvido!!!!






Tópicos Relacionados Collapse





Ganhe $$$ escrevendo tutoriais para nós!