Ir para conteúdo

POWERED BY:

Arquivado

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

Anakia

[Resolvido] Login em SQL

Recommended Posts

Ola pessoal estou fazendo um programa aqui e gostaria de faze-lo todo em SQL ja tenho o Microsoft SQL Server instalado na minha maquina bonitinho tenho o Visual Basic 6 e nao sei fazer o Login sei mexer bem no Visual e tudo mais nao sei fazer o login, alguem pode me explicar passo a passo como que se faz este login com o banco em SQL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente você precisa criar sua tabela de usuários com os campos que deseja ter e sem esquecer do login e senha.

Você deve fazer um select verificando se há algum registro na sua tabela que bate com o texto que foi digitado no campo login e no campo senha.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao amigo eu tenho a tabela criada, so que nao sei fazer o codigo e nem a onde colocar o codigo eu ja fiz o Form de Senha com um txtSenha e txtLogin um cmdOk e um cmdSair mais nao sei a onde colocar o codigo e nem sei fazer o codigo pode me ensinar por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para isto vou considerar que você ja fez a conexão com o Banco de Dados certo? ou seja, vou postar como se fazer Login, verificar usuário e senha na tabela Usuários, porém, como falei, para isto você já deve estar com uma conexão ativa com o BD à qual neste exemplo chamarei de "cnn"

Obs: este código é feito todo em SQL com o acesso ao BD com ADO certo? se tiver duvidas quanto a isto post ou pode me passar um e-mail que tentarei ajudá-lo da melhor forma.

 

No General Declarations do Form de Login declare os objetos command para passar as instruções ao Banco de Dados, Recordset para retornar os valores requeridos e vinfo que usaremos sempre que for necessário mandar uma mensagem ao usuário:

 

Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim vinfo As Integer

No evento Load do Form vamos preencher o Recordset com os dados da tabela Usuarios

 

 

Private Sub Form_Load()

With cmd
	.ActiveConnection = cnn 'cnn é o nome da conexão ativa com o Banco de Dados
	.CommandType = adCmdText
	.CommandText = "select usuario, senha from usuarios" 'selecionando os campos da tabela usuarios
	Set rs = .Execute 'preenche o recordse com os campos da tabela
End With

End Sub

 

Agora o código do botão de acesso, que vai fazer todo o trabalho

 

Private Sub CmdOK_Click()

If TxtLogin.Text = "" Or TxtSenha.Text = "" Then 'se os campos não forem preenchidos avisar para o usuário preencher
vinfo = MsgBox("Campos obrigatórios: Login e Senha"", vbCritical + vbOKOnly, " Login ")
TxtLogin.SetFocus

Else 'se forem preenchidos

With rs
.Filter = " usuario like '" & TxtLogin.Text & "'"  'verifica se existe o usuario digitado na txtLogin no Banco de Dados

If .BOF And .EOF Then  'se não encontrou o nome na tabela mostra mensagem 
vinfo = MsgBox("Usuário inválido", vbExclamation + vbOKOnly, " Login ")
TxtLogin.SetFocus

Else 'se encontrou o usuário então verifica a senha

If TxtSenha.Text <> !senha Then 'se a senha está diferente da senha deste usuário na tabela então informa ao usuário
vinfo = MsgBox("Senha inválida", vbExclamation + vbOKOnly, " Login ")
TxtSenha.SetFocus

Else 'se a senha está OK então abre o proximo formulário, que neste caso é o MDIForm1 e aparece na Statusbar do Form o nome do usuário que Logou o sistema

MDIForm1.StatusBar1.Panels(1) = "Usuário logado:  " & FrmLogin.TxtLogin.Text
Unload Me
MDIForm1.Show

End If
End If
End With
End If

End Sub

Agora coloque este código para fechar os objetos Command e Recordset usados no Form Login quando o mesmo for fechado

 

Private Sub Form_Unload(Cancel As Integer)

Set cmd = Nothing
Set rs = Nothing

End Sub

 

Ok Colega?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo o seu post me ajudou muito a tirar algumas duvidas minhas, so gostaria de pedir um favor eu nao sei conectar o VB em um banco de dados SQL Sever poderia me ajudar por favor...

 

Grato...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Anakia.

 

Se o problema for só a conexão é até simples de ser resolvido, não esqueça de fazer referência à biblioteca Microsoft ActiveX Data Object 2.6 Library

em seu projeto, se não não irá funcionar corretamente.

 

Private Sub s_abreBanco()

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset 

cn.Provider = "SQLOLEDB"
cn.Properties("Data Source").Value = <servidor>
cn.Properties("Initial Catalog").Value = <BancoDados>
cn.Properties("User ID").Value = <usuario>
cn.Properties("Password").Value = <senha>
cn.Open

End Sub

Esse é só um dos vários meios de conexão, acho esse o mais didático e organizado, qualquer coisa posta a dúvida ae!!

 

Paulo Mendes.

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.