CONECTAR UM FRM DE LOGUIN AO BANCO DE DADOS

NALDO 25/09/2010 11:29:56
#353823
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.
WEBSTERGONTIJO 25/09/2010 11:48:09
#353824
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[Ô][Ô][Ô]
[ô]
JWCELYO 25/09/2010 11:52:27
#353825
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





JWCELYO 25/09/2010 12:52:38
#353827
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
ADRIANOM 25/09/2010 13:21:20
#353830
Não falta o * antes do FROM não?
JWCELYO 25/09/2010 13:24:46
#353832
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
NALDO 27/09/2010 18:13:19
#353946
Citação:

:
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







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?
MARCELO.TREZE 27/09/2010 19:26:11
#353950
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

 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