ERRO AO EXECUTAR COMANDO SQL

MARCOSDETTMANN 08/03/2010 23:47:09
#336364
Boa noite pessoal!! Como tem muito fera aki no VBMania, sei que terá alguém para me ajudar nesse erro. Acredito ser simples, mas de verdade não to conseguindo resolvê-lo. Favor dêem uma olhada no anexo e vejam o que pode estar acontecendo. Meu código é para verificar se o USUARIO digitado coincide com o que está gravado no meu BD, funcionando esse, depois coloco pra verificar a senha junto.
Desde já agradeço.
Abraço, Marcos.
ROBIU 09/03/2010 05:51:24
#336372
Para verificar apenas o usuario:(Msg - Usuário Inválido)
CommandText = [Ô]Select Usuario,Senha FROM Usuarios WHERE Usuario=[ô][Ô] & Usuario & [Ô][ô][Ô]


Para verificar Usuário e senha: (Msg - Usuário ou senha inválido). Esse código só retorna o registro se o usuario estiver cadastrado e se a senha deste usuário for informada corretamente:

CommandText = [Ô]Select Usuario,Senha FROM Usuarios WHERE Usuario=[ô][Ô] & Usuario & [Ô][ô] and Senha=[ô][Ô] & Senha & [Ô][ô][Ô]


OBS: A tabela usuarios deve guardar os dados criptografados, para que o usuário não burle seu login. Lembre-se que senha access são fracas e existem vários programas de quebra de senha access. Click aqui e veja minha senhaCrypto ocx. . Esse componente faz toda validação de senhas, cria usuarios, edita senhas, etc.

MARCOSDETTMANN 10/03/2010 00:06:34
#336495
Ok Robiu, a linha de SQL estava correta. Onde da o erro é no Comando.Execute. Dá o seguinte erro: [ô]-2147217900 (80040e14)[ô] Erro de sintaxe na cláusula FROM. Aproveito também para te dizer que é muito interessante esse componente que tu criou. Epero um dia conseguir chegar nesse nível.

Abraço,
Marcos.
ROBIU 10/03/2010 05:47:49
#336501
A sua instrução sql tem dois erros:

Citação:

[Ô]Where Usuario,Senha=[Ô]



1 - Depois do Where deve ter um único nome de campo. Ou Usuário ou senha.
2 - O critério é do tipo texto, portando deve está entre aspas simples:

[Ô] WHERE Usuario=[ô][Ô] & Usuario & [Ô][ô][Ô]


A Select foi montada na linha anterior mas acusa o erro na hora de ser executada. Por isso que da erro na linha do execute.

Você testou os códigos que coloquei acima? Se testou, que erro ocorreu?
MARCOSDETTMANN 10/03/2010 20:32:59
#336597
Boa noite!
Sim Roberto, até copiei e colei seus dois exemplos acima e continua dando o mesmo erro. O que poderia ser isso?

Grato,
Marcos.
ROBIU 11/03/2010 05:47:22
#336618
Alem da modificação no sql, há outro erro no seu código, nesta linha:
Citação:

.CommandType=adCmdTable



O correto é:
.CommandType = adCmdText


OPICIONAL:
Acredito que o problema já tenha sido resolvido. Porém sugiro não usar o Comand. Teste assim:

Else [ô] Substitua todo codigo entre o Else e o End If de seu CmdOk_Click por este
Dim TBUsuarios As ADODB.Recordset
Dim Sql As String
Sql = [Ô]Select Usuario,Senha FROM Usuarios WHERE Usuario=[ô][Ô] & Usuario & [Ô][ô][Ô]
Rs.Open Sql, ComunicacaoBD, adOpenKeyset, adLockPessimistic
If Rs.RecordCount > 0 Then
MsgBox [Ô]O usuário [[Ô] & Rs(0) & [Ô]] está Cadastrado[Ô]
Else
MsgBox [Ô]Usuario não encontrado[Ô]
End If
End If




Tópico encerrado , respostas não são mais permitidas