Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

acma88

verificar usuario e senha no banco para logar

Recommended Posts

poh luiz ... naum funcionou o que você me sugeriu,

dah erro de object required na seguinte linha

Private Sub chameleonButton1_Click()

' conexao ultilizado para o banco

Set cn = New ADODB.Connection

With cn

.Provider = "MSDASQL"

.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)}; Dbq=C:\Documents and Settings\Administrador\Desktop\agend\agend\Bd.mdb;Uid=Admin; Pwd=;"

.Open '(Usuário) (Senha) (Caminho e Nome do banco de dados)

End With

'aqui vai a parte da conexão

If cn.Execute("select * from users where login = '" & txtLogin.Text & "' and senha = '" & txtSenha.Text & "'").EOF Then

MsgBox "Dados Inválidos!"

Else

MsgBox "Dados Corretos!"

End If

End Sub

 

 

Quem tiver alguma sugestão, por favor postem .. valeuw !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas acma88,

 

Faz da seguinte maneira:

 

No botão onde vai clicar para fazer o login coloque o seguinte codigo:

Private Sub Command1_Click()

 

Dim Registos As ADODB.Recordset ' Definição de uma variavel para ter o conjunto dos registos

Set Registos = New ADODB.Recordset ' Atribuo essa variavel a um NOVO método do ADODB

 

 

' Agora, na proxima linha eu vou abrir uma CONSULTA

 

consulta = "select * from Tabela where (Nome = '" & Text1.Text & "' and Senha = '" & Text2.Text & "')"

 

Registos.Open consulta, g_str_ConnectionString, adOpenForwardOnly, adLockReadOnly

 

' Devemos validar sempre se já existem registos!

 

If Registos.EOF Then ' Se for fim do ficheiro

 

MsgBox "Erro!! Nao Existem Registo Na Base Dados", vbCritical

 

 

Else 'significa que existe pelo menos 1 registo

 

 

Form2.Show ' se for a condiçao verdadeira vai para o Form2 ou seja a tabela seguinte

 

 

End If

 

Registos.Close

 

Set Registos = Nothing

 

End Sub

 

Para este codigo funcionar é necessário criar um Módulo para fazer a ligaçao a Base de Dados. No Modulo coloca-se o seguinte codigo:

 

Public Const g_str_ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Caminho Base de Dados;Persist Security Info=False"

 

Nota: É necessário adaptar o codigo ao seu programa, ou seja, as variaveis tem que ser as suas se nao vai dar erro.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom dark_devil, inseri esse conteudo que voce sugerio, e o adaptei ao meu codigo, porem da object required nessa linha:

 

Dim Registos As ADODB.Recordset ' Definição de uma variavel para ter o conjunto dos registos

Set Registos = New ADODB.Recordset ' Atribuo essa variavel a um NOVO método do ADODB

 

 

' Agora, na proxima linha eu vou abrir uma CONSULTA

 

op.CommandText = "select * from users where (login = '" & txtLogin.Text & "' and senha = '" & txtSenha.Text & "')"

Registos.Open op, g_str_ConnectionString, adOpenForwardOnly, adLockReadOnly

 

 

 

If Registos.EOF Then ' Se for fim do ficheiro

 

MsgBox "Erro!! Nao Existem Registo Na Base Dados", vbCritical

 

 

Else

 

 

Principal.Show '

 

 

End If

 

Registos.Close

 

Set Registos = Nothing

 

fiz algumas tentativas, mas nenhuma deu certo .... meooo qq pod ser? !

 

sou novo em vb .... entaum toh querendo pegar os macetes de conexão

 

Mesmo assim brigadu pela atenção !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas acma88,

 

vou pegar no seu codigo e vou altera-lo com as suas variaveis , pois verifiquei 1 erro:

 

codigo

 

Dim Registos As ADODB.Recordset ' Definição de uma variavel para ter o conjunto dos registos

Set Registos = New ADODB.Recordset ' Atribuo essa variavel a um NOVO método do ADODB

 

 

' Agora, na proxima linha eu vou abrir uma CONSULTA

 

op.CommandText = "select * from users where (login = '" & txtLogin.Text & "' and senha = '" & txtSenha.Text & "')"

 

Registos.Open op.CommandText, g_str_ConnectionString, adOpenForwardOnly, adLockReadOnly

 

 

 

If Registos.EOF Then ' Se for fim do ficheiro

 

MsgBox "Erro!! Nao Existem Registo Na Base Dados", vbCritical

 

 

Else

 

 

Principal.Show '

 

 

End If

 

Registos.Close

 

Set Registos = Nothing

 

agora voce tem que criar um modulo em que vai colocar o codigo para ligar a base dados, sem o modulo o programa nao funciona:

 

Public Const g_str_ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Caminho Base de Dados;Persist Security Info=False"

 

onde diz caminho base dados, voce em que escrever o local da base de dados ( exemplo: c:\bd\exemplo.mdb )

 

depois para que o visual basic reconheca a funçao de ligacao a base de dados e perciso adicionar algumas referencias:

 

1º. vai a project

2º. references

 

e vai adicinar o seguinte:

 

ole automation

microsft acivex data objects 2.7 library

microsft dao 3.1 object library

microsft data formatting object library

microsft data environment instance 1.0

nota: o modulo e muito impotante para que o programa funcione.

 

espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veio num tenho esses arquivos q você flo pra adicionar:microsft dao 3.1 object librarymicrosft data formatting object library SENDO QUE O EU ADICIONEI O 3.5 PQ NUM TINHA O 3.1dah o mesmo erro . Object required.SOH PRA você ENTENDER COMO ESTAH MEO MODULO:Global cn As ADODB.Connection ' variável de conexão com o banco de dadosGlobal rx As ADODB.Recordset ' variável recordset para selecionar informações do banco de dadosGlobal op As ADODB.Command ' variável de envio de comandos sql para o banco de dadosGlobal sql As StringPublic Const g_str_ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrador\Desktop\agend\agend\Bd.mdb;Persist Security Info=False"EU JAH TENTEI COLOCAR INVÉS DE REGISTOS QUE FOI O QUE você CRIOU E TENTEI COLOCAR O Q ESTÁ NO MEU MODULO "RX"mesmo assim naum vaitah me dando uma canseira essa verificação de login meoo .. se nem imagina .. pah que eh novato ... eh f*** ...mas mesmo assim valeuw pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

boas acma88,

 

Vamos la ver se é desta que vai ficar a dar...... :D

 

Voce vai colocar no Botão onde faz o Login o seguinte Codigo:

 

codigo

 

Dim Registos As ADODB.Recordset ' Definição de uma variavel para ter o conjunto dos registos

Set Registos = New ADODB.Recordset ' Atribuo essa variavel a um NOVO método do ADODB

 

 

' Agora, na proxima linha eu vou abrir uma CONSULTA

 

op.CommandText = "select * from users where (login = '" & txtLogin.Text & "' and senha = '" & txtSenha.Text & "')"

 

Registos.Open op.CommandText, g_str_ConnectionString, adOpenForwardOnly, adLockReadOnly

 

 

 

If Registos.EOF Then ' Se for fim do ficheiro

 

MsgBox "Erro!! Nao Existem Registo Na Base Dados", vbCritical

 

 

Else

 

 

Principal.Show '

 

 

End If

 

Registos.Close

 

Set Registos = Nothing

 

Depois no Modulo voce vai colocar só este codigo:

 

Public Const g_str_ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Caminho Base de Dados;Persist Security Info=False"

 

O OUTRO CODIGO QUE VOCE TEM LÁ APAGA, SE NAO O TIVER A UTILIZAR.

 

Apague o seguinte codigo, se nao o tiver a utilizar:

 

Global cn As ADODB.Connection ' variável de conexão com o banco de dados

Global rx As ADODB.Recordset ' variável recordset para selecionar informações do banco de dados

Global op As ADODB.Command ' variável de envio de comandos sql para o banco de dados

Global sql As String

 

Se der erro DIGA EM QUAL DAS LINHAS É QUE DÁ O ERRO, PORQUE ASSIM É MAIS FACIL AJUDAR

Compartilhar este post


Link para o post
Compartilhar em outros sites

veio do céu .. tah cansativo essa verificação de usuario hein ... e eu te amolando ae

dah o msm erro. run time error '424' object required naquela mesma linha (ESTÁ EM NEGRITO NO CÓDIGO), eu naum posso apagar akeles codigos no modulo pois ultilizo ele em cadastro de usuarios, porem deixei eles como comentario , ou seja , inutilizei eles para testar, porem dah o erro que eu disse acima. Object Required na linha em negrito.

Dim Registos As ADODB.Recordset ' Definição de uma variavel para ter o conjunto dos registos

Set Registos = New ADODB.Recordset ' Atribuo essa variavel a um NOVO método do ADODB

 

 

' Agora, na proxima linha eu vou abrir uma CONSULTA

 

op.CommandText = "select * from users where (login = '" & txtLogin.Text & "' and senha = '" & txtSenha.Text & "')"

 

Registos.Open op.CommandText, g_str_ConnectionString, adOpenForwardOnly, adLockReadOnly

 

If Registos.EOF Then ' Se for fim do ficheiro

MsgBox "Erro!! Nao Existem Registo Na Base Dados", vbCritical

Else

Principal.Show '

End If

Registos.Close

Set Registos = Nothing

End Sub

 

 

No modulo, fiz como sugeriu, coloquei:

Public Const g_str_ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrador\Desktop\agend\agend\Bd.mdb;Persist Security Info=False"

 

No meu cadastro de usuario, cadastra normal, abaixo vai a conexão que ultilizo para cadastrar

Set cn = New ADODB.Connection

With cn

.Provider = "MSDASQL"

.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;User ID=admin;Data Source=Bd"

.Open '(Usuário) (Senha) (Caminho e Nome do banco de dados)

End With

 

 

NÃO SEI SE TEM ALGO A HAVER MAIS SÓ PRA MOSTRAR

DESCULPA A AMOLAÇÃO ... + NOVATO EH f*** MEOO ... + DE MOMENTO VALEUW PELA AJUDA

Compartilhar este post


Link para o post
Compartilhar em outros sites

boas acma88,

 

Diga-me so uma coisa, quais sao as suas variaveis que voce coloca nesta linha

 

op.CommandText = "select * from users where (login = '" & txtLogin.Text & "' and senha = '" & txtSenha.Text & "')"

 

As variaveis que estao AZUL tem que ser as mesmas da Base de Dados, ou seja, se voce na Base de dados tem " Usuário " e " Senha ", entao o codigo nessa linha fica assim:

 

op.CommandText = "select * from users where (Usuário = '" & txtLogin.Text & "' and Senha = '" & txtSenha.Text & "')"

 

 

QUAL É O NOME QUE VOCE ATRIBUIU AS COLUNAS DA BASE DE DADOS ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que a conexão CN você está declarando no código, o único lugar que pode estar o erro é nas partes que pega os valores dos Textboxes.Por acaso esses textboxes existem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

DEUUSSSSSS EH GRDE MINHA GTEEE ..... DEUUUUUUU CERTTOOOOOOO PROBLEMA ERA : NOME DE UMA CONEXAO ESTAVA ERRADA.DESCULPA PELO SOFRIMENTO QUE TE CAUSEI dark_devil POREM TINHA PURA CONVICSÃO DE QUE OS NOMES ESTAVAM CERTOS. POREM ME ENGANEI FEIO.MAS VALEU MESMO PELA AJUDA TANTO A VOCE dark_devil QTO AO LUIZ ....VALEUW MSM.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.