Dr.Festa
|
CURITIBA PR - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 05/02/2010 23:25 hs
Pessoal, estou tentando aprender a mexer com vb e banco de dados, não estou conseguindo fazer uma simples consulta para login de usuário. Se puderem me ajudar apontando o que esta errado eu agradeço.
OBS: estou usando vb6, banco em access 2000 com conexão jet 4.0 e o nome do banco e SOFTDATA.MDB
Segue abaixo o código completo do formulario de login. ---------------------------------------------------------------------------------- Dim conexao As New ADODB.Connection Private Sub Form_Load() If conexao.State = 1 Then conexao.Close Set conexao = Nothing valor = True If valor = True Then conexao.Open "provider=micrsoft.jet.OLEDB.4.0;Data sourse=" & App.Path & "softdata.mdb;jet oledb:systemdatabase=system.mdw;" MsgBox ("Banco aberto!!") Else conexao.Close Set conexao = Nothing MsgBox ("Banco não aberto") End If End If End Sub Private Sub bLogOk_Click() Dim vUsuario As String 'recebe o nome de usuario digitado pelo usuario Dim vSenha As String 'recebe a senha digitada pelo usuario Dim vUsuarioBanco As Recordset 'recebe o nome de usuario cadastrado no banco de dados de acordo com a consulta sql de comparação com o nome digitado pelo usuario Dim vsenhabanco As String 'recebe a senha cadastrada no banco de acordo com a consulta sql feita. vUsuario = tUsuario.Text vSenha = tSenha.Text If vUsuario = "" Then MsgBox ("Digite o nome do usuário") Else 'set vusuariobanco = conexao.createquerydef(usuario,select usrlogin from usrlogin where usrlogin = vusuario) 'vUsuarioBanco = "select usrlogin from usrlogin where usrlogin = '" & vUsuario & "'" Set tb = db.OpenRecordset("select usrlogin from usrlogin where usrlogin = '" & vUsuario & "'", dbOpenDynaset) If tb("usrlogin") = "" Then MsgBox ("Usuário não encontrado") Else vsenhabanco = "select usrsenha from usrlogin where usrlogin = " & vUsuario & ";" If vSenha = "" Then MsgBox ("Digite uma senha") ElseIf vsenhabanco <> vSenha Then MsgBox ("Senha incorreta") ElseIf vsenhabanco = vSenha Then MsgBox ("Usuário encontrado!") 'inserir o comando para abrir o formulario principal do sistema End If End If End If End Sub ----------------------------------------------------------------------------------
|
|
|
|
|
Postada em 05/02/2010 23:54 hs
Bom vamos lá primeiro a conexão Dim conexao As New ADODB.Connection Private Sub Form_Load() If conexao.State = 1 Then conexao.Close Set conexao = Nothing Else conexao.Open "provider=micrsoft.jet.OLEDB.4.0;Data sourse=" & App.Path & "\softdata.mdb;jet oledb:systemdatabase=system.mdw;" 'MsgBox ("Banco aberto!!") não coloue esta mensagem ela te toma desempenho End If End Sub a conexão acima ficou simples agora vamos simplificar a verificação do login e senha. Private Sub bLogOk_Click() Dim vUsuario As String 'recebe o nome de usuario digitado pelo usuario Dim vSenha As String 'recebe a senha digitada pelo usuario Dim vUsuarioBanco As Recordset 'recebe o nome de usuario cadastrado no banco de dados de acordo com a consulta sql de comparação com o nome digitado pelo usuario Dim vsenhabanco As String 'recebe a senha cadastrada no banco de acordo com a consulta sql feita. vUsuario = tUsuario.Text vSenha = tSenha.Text If vUsuario = "" Then MsgBox "Digite o nome do usuário" txtUsuario.SetFocus Exit Sub ElseIf vSenha = "" Then MsgBox "Digite a Senha" txtSenha.SetFocus Exit Sub End IF 'set vusuariobanco = conexao.createquerydef(usuario,select usrlogin from usrlogin where usrlogin = vusuario) 'vUsuarioBanco = "select usrlogin from usrlogin where usrlogin = '" & vUsuario & "'" Set tb = db.OpenRecordset("select usrlogin from usrlogin where usrlogin = '" & vUsuario & "'", dbOpenDynaset) If tb("usrlogin") = "" Then MsgBox ("Usuário não encontrado") Else vsenhabanco = "select usrsenha from usrlogin where usrlogin = " & vUsuario & ";" If vSenha = "" Then MsgBox ("Digite uma senha") ElseIf vsenhabanco <> vSenha Then MsgBox ("Senha incorreta") ElseIf vsenhabanco = vSenha Then MsgBox ("Usuário encontrado!") 'inserir o comando para abrir o formulario principal do sistema End If End If End If End Sub
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
Postada em 06/02/2010 00:06 hs
Desculpe desconsidere o tópico anterior, é que enviei antes de editar e como não estava logado não posso apaga-lo ou edita-lo eis a resposta correta Bom vamos lá primeiro a conexão Dim conexao As New ADODB.Connection Private Sub Form_Load() If conexao.State = 1 Then conexao.Close Set conexao = Nothing Else conexao.Open "provider=micrsoft.jet.OLEDB.4.0;Data sourse=" & App.Path & "softdata.mdb;jet oledb:systemdatabase=system.mdw;" 'MsgBox ("Banco aberto!!") não coloue esta mensagem ela te toma desempenho End If End Sub a conexão acima ficou simples agora vamos simplificar a verificação do login e senha. Private Sub bLogOk_Click() Dim vUsuario As String Dim vSenha As String Dim RS As Recordset vUsuario = tUsuario.Text vSenha = tSenha.Text If vUsuario = "" Then MsgBox "Digite o nome do usuário"
tUsuario.SetFocus Exit Sub ElseIf vSenha = "" Then MsgBox "Digite a Senha" tSenha.SetFocus Exit Sub End IF sSQL = "select * from usrlogin where usrlogin = '" & vUsuario & "' and usrsenha = '" & vSenha & "'" Set RS = Conexao.Execute(sSQL) If (RS.BOF And RS.EOF) Then MsgBox "Usuário ou senha não conferem!" tUsuario.Text = "" tSenha.Text ="" tUsuario.SetFocus Else 'inserir o comando para abrir o formulario principal do sistema End If End Sub
Pronto Teste agora
|
TÓPICO EDITADO
|
|
|
|
Dr.Festa
|
CURITIBA PR - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 06/02/2010 02:13 hs
Valeu Treze... Durante a digitação deu a seguinte msgm de erro na linha sSQL = "select * from usrlogin where usrlogin = '" & vUsuario & "' and usrsenha = '" & vSenha & "'"
Compile error: Expected: end of statement
e durante a execução deu o segunte erro: Run-Time-error '-2147467259 (80004005)': Não foi possivem encontrar ISAM instalavel.
Já aproveitando, toda consulta que eu precisar fazer no banco eu tenho que abrir o banco e executar a consulta, ou eu abro o banco uma vez junto com o programa (como foi feito no form-load do form de login) e nos outros formulários só executo as consultas utilizando os recordsets?
|
TÓPICO EDITADO
|
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 06/02/2010 19:55 hs
Aqui fica dificil definir, mas parece que vc inverteu aspas duplas com simples, veja com espaços entre elas como é pra ficar. sSQL = " select * from usrlogin where usrlogin = ' " & vUsuario & " ' and usrsenha = ' " & vSenha & " ' " vlu//
|
|
|
|
Postada em 07/02/2010 23:16 hs
Obrigado LCRamos, mas o problema não é esse, conferi novamente as aspas e estão certas, já tentei também instalar o mdac 2.8, mas o sistema diz que não pode instalar porque os componentes já fazem parte do windows. Realmente não sei o que pode ser o problema!!!!
|
|
|