USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Ajuda em Consulta sql
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
----------------------------------------------------------------------------------
   
Treze
não registrado
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
Pontos: 2843 Pontos: 2843
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
Pontos: 2843
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//


   
Dr.Festa
CURITIBA
PR - BRASIL
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!!!!
     
Página(s): 1/3      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página