LOGIN - SQL

USUARIO.EXCLUIDOS 24/03/2005 17:09:54
#74758
[txt-color=#000080]Eu preciso fazer um formulário d login, + naum sei como...
Qndo clicar no OK, eu quero verificar no bd se o usuário e a senha estão corretos (pelo menos por enqnto, é só um usuário); só q eu queria fazer isso em SQL.
Alguém pode me ajudar? [/txt-color][S59]
THIAGO.CESAR 24/03/2005 18:23:04
#74784
Verifique se na sua tabela existe um registro com o usuário e a senha informados:

Select * From TabUsuarios Where Usuario = '" & Text1.Text & "' And Senha ='" & Text2.text & "'"

If rs.RecordCount > 0 then
msgbox "Senha correta"
Else
msgbox "Usuário inexistente ou Senha incorreta"
End if


Ou

If Not  IsNull(rs!Login) then
msgbox "Senha correta"
Else
msgbox "Usuário inexistente ou Senha incorreta"
end if
USUARIO.EXCLUIDOS 24/03/2005 18:37:01
#74788
Resposta escolhida
Tiago.. acho que sua estrutura lógica ficou errada...

If rs.RecordCount > 0 then
msgbox "Senha correta"
Else
msgbox "Usuário inexistente ou Senha incorreta"
End if

Ou seja se existir um registro, com o nome e senha digitado... vai dar senha incorreta.. .se não existir vai dar usuário ou senha incorreta... esta errrado

Acho que seria melhor assim


SQL = "Select * From TabUsuarios Where " _
& "Usuario = '" & Text1.Tex & "'"

Depois de executar a consulta...

if rst.eof and rst.bof then
Msgbox "usuário inexistente"
Exit sub
End if

If rst![senha] = txtsenha then
Msgbox "Bem vindo"
FormPrincipal.Show
else
Msgbox "Senha incorreta"
end if


Entendeu a lógica
THIAGO.CESAR 24/03/2005 19:18:49
#74795
GERMANIR,

Valeu pela observação,
Sua lógica é mais precisa na resposta ao usuário, pois primeiro verifica se o usuário existe e depois verifica a senha, informando ao usuário qual exatamente foi o motivo do bloqueio.
O meu código confunde mais o usuário que não logou corretamente, ou seja, sequer informa se o usuário existe ou não, [s61] mas não é o caso de estar errado.

Eu realizava essa tarefa com um código semelhante ao seu, mas depois passei a usar o outro, pois, erros de digitação à  parte, eu penso que a responsabilidade de saber se o usuário existe ou não é do usuário.

Não é relevante quanto à  segurança, e, esteticamente, a sua lógica é bem melhor.

Até logo...
USUARIO.EXCLUIDOS 24/03/2005 19:36:20
#74798
Obrigado... estamos aqui pra COMPARTILHAR informações!
As vezes deixo passar alguma também...
Agora que vi... q no codigo está SENHA CORRETA......
Achei que era SENHA INCORRETA...
Seu codigo também está certo...
hehehe......
........
USUARIO.EXCLUIDOS 24/03/2005 21:41:47
#74825
[txt-color=#000080] + o q q é o SQL? Boolean, String....?
Tá dando pau aki:[/txt-color]
[txt-color=#ff0000] SQL = "Select * from log where " _
& "login = '" & TXTSenha.Text & "'" [/txt-color]
[txt-color=#000080]log é o nome da tabela e login o nome do campo.
Ond q tá o erro? [/txt-color]
THIAGO.CESAR 25/03/2005 09:40:46
#74859
MAZINHA,

Pelo que vi você armazena a senha num campo chamado login, porque você criou uma SQL que seleciona os registros da tabela log cujo campo login seja igual ao conteudo do campo txtsenha.

Sua intenção era essa mesmo?

O adequado seria você colocar no campo login o nome do usuario e criar um campo senha para a senha de cada usuario.

Ficaria assim
Select * From log where login = '" & TXTUsuario.Text & "' AND senha = '" & TXTSenha.Text & "'"
Ou então como o GERMANIR postou.

Quanto ao seu questionamento:
Citação:

+ o q q é o SQL? Boolean, String....?


Sua pergunta é muito ampla e envolve os princípios mais básicos do VB. Tente ser um pouco mais específica...

Se precisar de mais algo é só entrar em contato...
USUARIO.EXCLUIDOS 25/03/2005 10:34:52
#74869
[txt-color=#000080]Deu pau di novo...[S38]
Eu declarei q SQL é Boolean e qndo carrega o formulário, SQL=True.
No botão OK tem o seguinte:
If SQL = True Then[/txt-color]
[txt-color=#ff0000]SQL = "Select * From log where login = '" & TXTUsuario.Text & "' AND senha = '" & TXTSenha.Text & "'"[/txt-color]
[txt-color=#000080]End If

O erro aparece onde tá em vermelho.
Q q eu faço???
[/txt-color][S43]
THIAGO.CESAR 25/03/2005 11:33:56
#74878
Mazinha,

SQL não pode ser booleana, é uma String e você deve criar uma conexão e um recordset para acessar o banco de dados.
As variáveis do tipo boolean só recebem True/False

Você já sabe fazer conexões com banco de dados?

Thiago César
tkzar@hotmail.com
USUARIO.EXCLUIDOS 28/03/2005 16:33:53
#75383
[txt-color=#000080]Faz um tempinhu q eu naum mexo com programação... Por isso q eu tà' enrolada com isso...
+ dexa eu t mostrá o q eu fiz:

Módulo
Declaração de variáveis
Public SQL As Boolean
Public vSQL As String
Public TB_LOG As Recordset
Public BD As Database
Public AREA As Workspace


BD
Sub Abre_Log()
Set AREA = DBEngine.Workspaces(0)
AREA.BeginTrans
On Error GoTo ERRO_ABRIR
Set BD = AREA.OpenDatabase("c:\dados\dados.mdb", False)
Set TB_LOG = BD.OpenRecordset("log", dbOpenDynaset)
On Error GoTo 0
Exit Sub
ERRO_ABRIR:
If MsgBox("Erro ao acessar dados!", vbCritical, "Erro!") = vbOK Then
AREA.Rollback
On Error GoTo 0
Exit Sub
End If
Resume
AREA.CommitTrans
End Sub


Formulário
If SQL = True Then
SQL = "Select * From log where login = '" & TXTUsuario.Text & "' AND senha = '" & TXTSenha.Text & "'"
End If


Se entendeu o q eu fiz? Assim fica + fácil pra me ajudá, ou eu piorei as coisas???[/txt-color]
USUARIO.EXCLUIDOS 28/03/2005 16:44:38
#75389
Tente assim

Set AREA = DBEngine.Workspaces(0)
AREA.BeginTrans
On Error GoTo ERRO_ABRIR
Set BD = AREA.OpenDatabase("c:\dados\dados.mdb", False)


[txt-color=#ff0000]vSQL[/txt-color] = "Select * From log where login = '" & TXTUsuario.Text & "' AND senha = '" & TXTSenha.Text & "'"

Set TB_LOG = BD.OpenRecordset([txt-color=#0000ff]vSQ[/txt-color]L, dbOpenDynaset)

If TB_LOG.BOF and TB_LOG.EOF
msgbox "Usuário ou senha incorreta"
else
Msgbox "Bem vindo"
principal.show
end if
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas