CONECTAR UM FRM DE LOGUIN AO BANCO DE DADOS
Olá, estou montando um pequeno projeto para minha escola só que estou com problemas para definir o frm de loguin, o cadastro está ok e conectado ao banco de dados, só que não sei usar ferramentas para consultar o banco e comparar com meus txt, dei conta de montar um simples sem conexão com banco:
[ô] If txt(0).Text = [Ô]Naldo[Ô] And txt(1).Text = [Ô]1234[Ô] Then
[ô] MsgBox [Ô]Loguin realizado com sucesso.[Ô], vbExclamation, [Ô]Logado[Ô]
[ô] frmPrincipal.Show
[ô] Else
[ô] MsgBox [Ô]Dados do loguin incorretos.[Ô], vbCritical, [Ô]Não Logador[Ô]
[ô] End If
Meu banco é myql e começei meu codigo assim:
[ô]Private Sub subLogar()
[ô] Dim sSQL As String
[ô] Dim rs As New ADODB.Recordset
[ô]
[ô] sSQL = [Ô][Ô]
[ô] sSQL = sSQL & [Ô] SELECT [Ô]
[ô] sSQL = sSQL & [Ô] usuario, [Ô]
[ô] sSQL = sSQL & [Ô] senha [Ô]
[ô] sSQL = sSQL & [Ô] FROM [Ô]
[ô] sSQL = sSQL & [Ô] loguin [Ô]
[ô] ssql = ssql &
[ô]
[ô] If rs.State = 1 Then rs.Close
[ô]
[ô] rs.Open sSQL, Conn, adOpenDynamic
[ô]
[ô] Do While rs.EOF = False
[ô]
[ô]
[ô]
[ô]End Sub
só que empaquei ai, espero a ajuda de vocês! desde já obrigado.
[ô] If txt(0).Text = [Ô]Naldo[Ô] And txt(1).Text = [Ô]1234[Ô] Then
[ô] MsgBox [Ô]Loguin realizado com sucesso.[Ô], vbExclamation, [Ô]Logado[Ô]
[ô] frmPrincipal.Show
[ô] Else
[ô] MsgBox [Ô]Dados do loguin incorretos.[Ô], vbCritical, [Ô]Não Logador[Ô]
[ô] End If
Meu banco é myql e começei meu codigo assim:
[ô]Private Sub subLogar()
[ô] Dim sSQL As String
[ô] Dim rs As New ADODB.Recordset
[ô]
[ô] sSQL = [Ô][Ô]
[ô] sSQL = sSQL & [Ô] SELECT [Ô]
[ô] sSQL = sSQL & [Ô] usuario, [Ô]
[ô] sSQL = sSQL & [Ô] senha [Ô]
[ô] sSQL = sSQL & [Ô] FROM [Ô]
[ô] sSQL = sSQL & [Ô] loguin [Ô]
[ô] ssql = ssql &
[ô]
[ô] If rs.State = 1 Then rs.Close
[ô]
[ô] rs.Open sSQL, Conn, adOpenDynamic
[ô]
[ô] Do While rs.EOF = False
[ô]
[ô]
[ô]
[ô]End Sub
só que empaquei ai, espero a ajuda de vocês! desde já obrigado.
Opa NALDO
criando a tabela do banco de dados com
usuario , senha , nivel
faço a leitura dos meus dados assim
* cl e uma classe que tenho para fazer a conexao com o meu banco, mas vc pode usar direto!
cl.execute([Ô]select * from cad_usuarios where usuario =[ô] [Ô] & usuario.text & [Ô] [ô] [Ô])
dim dt as data.datatable = cl.result
[ô][ô][ô] aki verifico se o usuario,text que o cliente digito teve algum resultado positivo no banco
if dt.rows.count <> 0
if dt.rows (o).item(dt[Ô]usario[Ô]).tostring
if if dt.rows (o).item(dt[Ô]senha[Ô]).tostring
me.frm.close
[ô][ô][ô][ô][ô][ô] agora aki eu leio o nivel do meu usuario e libera os programas que ta liberado no nivel dele, sendo que eu tenho uma tabela no meu banco que tem permissoes do programa[Ô][Ô][Ô]
else
msgbox([Ô]senha errada[Ô])
else
msgbox ([Ô]usuario errado[Ô])
end if
end if
end if
Espero ter ajudado[Ô][Ô][Ô]
[ô]
criando a tabela do banco de dados com
usuario , senha , nivel
faço a leitura dos meus dados assim
* cl e uma classe que tenho para fazer a conexao com o meu banco, mas vc pode usar direto!
cl.execute([Ô]select * from cad_usuarios where usuario =[ô] [Ô] & usuario.text & [Ô] [ô] [Ô])
dim dt as data.datatable = cl.result
[ô][ô][ô] aki verifico se o usuario,text que o cliente digito teve algum resultado positivo no banco
if dt.rows.count <> 0
if dt.rows (o).item(dt[Ô]usario[Ô]).tostring
if if dt.rows (o).item(dt[Ô]senha[Ô]).tostring
me.frm.close
[ô][ô][ô][ô][ô][ô] agora aki eu leio o nivel do meu usuario e libera os programas que ta liberado no nivel dele, sendo que eu tenho uma tabela no meu banco que tem permissoes do programa[Ô][Ô][Ô]
else
msgbox([Ô]senha errada[Ô])
else
msgbox ([Ô]usuario errado[Ô])
end if
end if
end if
Espero ter ajudado[Ô][Ô][Ô]
[ô]
tente assim
Private Sub subLogar()
Dim sSQL As String
Dim rs As New ADODB.Recordset
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] usuario, [Ô]
sSQL = sSQL & [Ô] senha [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] loguin [Ô]
ssql = ssql &
If rs.State = 1 Then rs.Close
rs.Open sSQL, Conn, adOpenDynamic
While Not rs.EOF
If txt(0).Text = rect.Fields(0) = rect.Fields(1) Then
MsgBox [Ô]Loguin realizado com sucesso.[Ô], vbExclamation, [Ô]Logado[Ô]
frmPrincipal.Show
unload me
End If
rs.MoveNext
Wend
MsgBox [Ô]Dados do loguin incorretos.[Ô], vbCritical, [Ô]Não Logador[Ô]
End Sub
Citação:sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] usuario, [Ô]
sSQL = sSQL & [Ô] senha [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] usuarios [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
sSQL = sSQL & [Ô] usuario=[ô][Ô] & txt(0).Text & [Ô][ô] AND[Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(1).Text & [Ô][ô] [Ô]
Este exemplo do amigo CRISTIANOROO também funciona so tem que tomar cuidado com Injection
Não falta o * antes do FROM não?
Citação::
Não falta o * antes do FROM não?
não amigo ADRIANOM porque ele que retorna apenas os campos usuário e senha se ele usar * vai retorna todos campos da tabela
Citação::
tente assimPrivate Sub subLogar()
Dim sSQL As String
Dim rs As New ADODB.Recordset
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] usuario, [Ô]
sSQL = sSQL & [Ô] senha [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] loguin [Ô]
ssql = ssql &
If rs.State = 1 Then rs.Close
rs.Open sSQL, Conn, adOpenDynamic
While Not rs.EOF
If txt(0).Text = rect.Fields(0) = rect.Fields(1) Then
MsgBox [Ô]Loguin realizado com sucesso.[Ô], vbExclamation, [Ô]Logado[Ô]
frmPrincipal.Show
unload me
End If
rs.MoveNext
Wend
MsgBox [Ô]Dados do loguin incorretos.[Ô], vbCritical, [Ô]Não Logador[Ô]
End Sub
Obrigado a todos, amigo desculpe a ignorância mas porque?
If txt(0).Text = rect.Fields(0) = rect.Fields(1) Then
MsgBox [Ô]Loguin realizado com sucesso.[Ô], vbExclamation, [Ô]Logado[Ô]
frmPrincipal.Show
unload me
End If
Seriam paramentro pessoais? eu deveria declarar?
Primeiro o ideal seria saber qual o banco de dados, e qual o tipo dos campos.
ex: Banco Access, campo Login tipo texto, campo senha tipo numerico
mas o colega cristianoroo deu a melhor solução
ou seja
mas veja bem dependendode como estiver seu banco conforme solicitado acima mudariam algumas coisinhas na query.
teste o codigo do colega, e diga se funcionaou ou não
ex: Banco Access, campo Login tipo texto, campo senha tipo numerico
mas o colega cristianoroo deu a melhor solução
ou seja
Dim sSQL As String
Dim rs As New ADODB.Recordset
sSQL = [Ô][Ô]
sSQL = sSQL & [Ô] SELECT [Ô]
sSQL = sSQL & [Ô] usuario, [Ô]
sSQL = sSQL & [Ô] senha [Ô]
sSQL = sSQL & [Ô] FROM [Ô]
sSQL = sSQL & [Ô] usuarios [Ô]
sSQL = sSQL & [Ô] WHERE [Ô]
sSQL = sSQL & [Ô] usuario=[ô][Ô] & txt(0).Text & [Ô][ô] AND[Ô]
sSQL = sSQL & [Ô] senha=[ô][Ô] & txt(1).Text & [Ô][ô] [Ô]
If rs.State = 1 Then rs.Close
rs.Open sSQL, Conn, adOpenDynamic
If rs.EOF = False Then
MsgBox [Ô] ACESSO LIBERADO!!!!!!!!!!![Ô], vbInformation
MDIForm1.Show
Unload Me
Else
MsgBox [Ô]ACESSO NEGADO![Ô], vbCritical, [Ô]Error[Ô]
End If
mas veja bem dependendode como estiver seu banco conforme solicitado acima mudariam algumas coisinhas na query.
teste o codigo do colega, e diga se funcionaou ou não
Tópico encerrado , respostas não são mais permitidas