Breaking News

Tela de login usando vb.Net com visual Studio 2010 e banco de dados em access.



Alguns alunos para os quais ministro aulas de vb.Net, quando esta próximos a  apresentação de seus trabalhos, correm contra o tempo e muitas vezes se deparam com um problema que não exigiria muito esforço em circunstancias normais, mas na atual circunstancia, a da entrega de um trabalho que valerá nota, este problema parece intransponível.
Enfim, que problema é esse? É o de desenvolver uma tela de login,  mas isso não chega a ser um problema, não é mesmo?
Quando tudo corre bem não, mas, quando esta tela de login passa a tomar muito tempo de desenvolvimento, isso sim se torna um problema.

Com intuito de ajudar os meus alunos do curso técnico de informática na ETEC e outros principiantes na arte de programar, desenvolvi uma tela de login simples e com conexão a banco de dados.
Usei o banco de dados access pela sua praticidade e facilidade de envio do mesmo junto com  o exemplo.
Busquei colocar o código todo em uma única tela, não o separando em módulos e assim facilitar a leitura.
Tenho recebido solicitações de diversos alunos de faculdades de TI e fico feliz em poder ajuda-lós, deixem seus comentários e tentarei responde-lós rapidamente na medida do possível.

segue a tela de exemplo do login:

Esta é uma tela simples, com 3 labels (rótulos), 2 textbox (Campo texto) , 1 combobox (Lista de Opções associada a texto), 2 botões  e 1 picturebox (p/ Inserir imagem).
Com eventos, temos :
Rotina no eventos de On change dos 2 textbox (txtLogin e txtSenha)
Rotina no evento de On Click dos botões  (OK e Cancel)
Rotina no Evento de On Load do formulário.
O Usuário cadastrado no banco de dados para teste é:
Usuário: rleme
Senha: leme123
Obs: não esqueça  de trocar o caminho do banco de dados na “String de conexão”
Após se logar com usuário valido, será aberta a tela principal do sistema.

segue o código:

Imports System.Data.OleDb
Public Class frmLogin
Public conecta As New OleDbConnection
Public comando As New OleDbCommand
Public checar As OleDbDataReader
Public Sub Conectar()
conecta.Close()
conecta.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= D:\ARQBACKUP\Meus documentos\Visual Studio 2010\Projects\2 Modulo\2 TC - Tela de login conexao access\banco\bdExemplo.mdb")
conecta.Open()
comando.Connection = conecta
End Sub
Public Function Desconectar()
conecta.Close()
Return True
End Function
Public Sub testaConexao()
Try
Conectar()
MsgBox("Conexao Realizada com sucesso")
Catch ex As Exception
Desconectar()
MsgBox("desconexao Realizada com sucesso")
End Try
End Sub
Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btnOK.Enabled = False
btnCancel.Enabled = False
cmbTipo.SelectedIndex = 0
End Sub
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
Conectar()
comando = New OleDbCommand("select senha_fun, usuario_fun, adm_fun from tabFuncionario where usuario_fun='" & _
txtUsuario.Text + "' and senha_fun='" + txtSenha.Text + "'", conecta)
checar = comando.ExecuteReader
Dim usuariobd As String = Nothing
Dim senhabd As String = Nothing
While checar.Read
If checar.Item("adm_fun") = "True" Then
MsgBox("Este usuario é administrador")
End If
senhabd = checar.Item("senha_fun").Trim
usuariobd = checar.Item("usuario_fun").Trim
End While
If usuariobd = txtUsuario.Text And senhabd = txtSenha.Text Then
Me.Visible = False
frmPrincipal.ShowDialog()
ElseIf usuariobd = Nothing Or senhabd = Nothing Then
MsgBox("Usuário ou Senha incorreto!", MsgBoxStyle.Information, "Erro")
txtUsuario.Text = ""
txtSenha.Text = ""
txtUsuario.Focus()
End If
checar.Close()
''Desconectar()
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
Me.Close()
End Sub
Private Sub txtUsuario_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUsuario.TextChanged
If txtUsuario.Text <> Nothing Or txtSenha.Text <> Nothing Then
btnOK.Enabled = True
btnCancel.Enabled = True
Else
btnOK.Enabled = False
btnCancel.Enabled = False
End If
End Sub
Private Sub txtSenha_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSenha.TextChanged
If txtUsuario.Text <> Nothing Or txtSenha.Text <> Nothing Then
btnOK.Enabled = True
btnCancel.Enabled = True
Else
btnOK.Enabled = False
btnCancel.Enabled = False
End If
End Sub
End Class

Nenhum comentário

imagem de uma pessoa em frente a tela no notebook com a logo do serviço balcão virtual. Ao lado a frase indicando que o serviço