sexta-feira, 29 de janeiro de 2010

:::TELA DE LOGIN E SENHA NO ACCESS:::



Caso você precise restringir o acesso às informações de seu BD será necessário criar uma tela de validação. Para isto darei um exemplo bem fácil, porem, não se atribui o uso há sistemas de qualidade, pois o mesmo terá o login e senha “cravados” no código. E para que possamos treinar e entender o método, será necessário abrir um arquivo de BD novo com nome que desejar.

1 – Clique na opção “Formulários” à “Criar formulário no modo Estrutura”
2 – Clique no menu “Caixa de ferramenta” à “Caixa de texto” e clique no painel para inseri-lo, repita o passo para que tenha dois campos.
3 – Clique com o botão direito do mouse na “Caixa de texto” que acabou de inserir, em seguida vá em “Propriedades” altere o nome da legenda de uma das caixas para “Login” e outra para “Senha”, altere também o nome da caixa (muito importante!) para “nome” e outro para “senha”.
4 – Insira um “Botão de Comando”, caso abra uma tela solicitando que escolha alguma opção, cancele.
5 – Nas propriedades do botão altere o “Nome” e a “Legenda” para “ok”, clique com o botão direito do mouse sobre o botão que acabou de inserir e vá até a opção “Construir evento” à “Construtor de código”, delete as informações contidas nesta tela e redigite o código abaixo alterando as informações onde estejam entre colchetes [ ]:

Option Compare Database

Private Sub ok_Click()
On Error GoTo Err_ok_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

If nome = “[Digite_o_nome_para_o_login]” And senha = “[Digite_a_senha_para_o_login]” then

    stDocName = "[Digite_o_nome_do_formulário_que_irá_abrir]"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Else

MsgBox “[Digite_uma_mensagem_de_erro_caso_os_dados_estejam_incorretos]

Exit_ok_Click:
    Exit Sub

Err_ok_Click:
    MsgBox Err.Description
    Resume Exit_ok_Click

End If
   
End Sub

6 – Para que não esquente a cabeça com mensagens de erro, tenha o formulário que queira abrir já pronto. E agora mão na massa!

19 comentários:

  1. ola amigo, há tempos estou precisando dessa dica.

    no entanto, fiz tudo conforme acima, mais esta aparecendo a mensagem: o objeto não aceita esta propriedade ou método.

    será que pode me ajudar.

    roberto-talarico@hotmail.com

    ResponderExcluir
  2. Boa tarde!

    Necessito de maiores informações para resolvermos tal problema, encaminharei um e-mail para que possamos trocar informações e assim que resolvido postaremos aqui a solução para demais colegas.

    ResponderExcluir
  3. Boa tarde!

    Desculpem a demora, vida corrida demais.

    Caso resolvido!

    ResponderExcluir
  4. Valew cara o código deu certinho para o meu projeto.

    um abração!

    ResponderExcluir
  5. consegui fazer, só que não consegue chamar o segundo formulario, msm com a senha correta, na senha errada ele tb não fecha o programa ou limpa o campo para redigitar...

    ResponderExcluir
  6. Bom dia amigo!

    "não consegue chamar o segundo formulário..."

    Atente para a seguinte linha do código;
    Não deve usar os colchetes;
    Verifique se o formulário chamado existe;
    Verifique se o nome chamado confere com o existente.

    stDocName = "[Digite_o_nome_do_formulário_que_irá_abrir]"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    "na senha errada ele tb não fecha o programa ou limpa o campo para redigitar..."

    Realmente, neste exemplo não fiz nenhum tipo de tratamento e no momento estou sem meu PC, mas assim que retornar da assistência prometo postar algo referente há esse contexto.

    ResponderExcluir
  7. ola amigo, há tempos estou precisando dessa dica.

    no entanto, fiz tudo conforme acima, mais esta aparecendo a mensagem: o objeto não aceita esta propriedade ou método.

    será que pode me ajudar.
    felipe.silva.pepe@gmail.com

    ResponderExcluir
  8. vc não tem um codigo que abra uma macro e não um formulario?

    ResponderExcluir
  9. como registrar o usuario na tabela ou relatorio incluindo a hora e data?

    ResponderExcluir
  10. Favor eu digitei tudo e não acontece nada, teria que fazer alguma coisa no formulário para dar certo, até mesmo depois que eu digito a senha ela continua registrado no formulário

    ResponderExcluir
  11. Eu novamente, veja o meu código:
    Option Compare Database

    Private Sub ok_Click()
    On Error GoTo Err_ok_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    If Nome = “Vendas” And Senha = “6364” Then

    stDocName = "Formpedido"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    Else

    MsgBox “erro”

    Exit_ok_Click:
    Exit Sub

    Err_ok_Click:
    MsgBox Err.Description
    Resume Exit_ok_Click

    End If

    End Sub

    ResponderExcluir
  12. Massa muito bom, obrigado mesmo, foi de muito proveito

    ResponderExcluir
  13. eu tbm n to conseguindo fiz tudo correto mais quando aperto ok tudo fica na mesma

    ResponderExcluir
  14. Boa noite, usei o código como você orientou, mas quando executo ele abre um campo me pedindo o nome da macro...

    você sabe o que pode ser isso...

    madson
    email: madson_cad@hotmail.com

    ResponderExcluir
  15. Porque não funciona com Access 2010?
    erro de compilação, era esperado Then or GoTo

    ResponderExcluir
  16. Faz tempo, mas vai a dica... Refaçam todas as aspas e vírgulas.
    O tal do "copy and paste" traz transtornos!

    ResponderExcluir
  17. boa noite olha eu já fiz um logim usando as suas dicas mais já faz muito tempo ai hoje eu olhei e fiz novamente, mais quando eu fecho o formulário que abro novamente a senha e o nome já esta preenchido como faço para que eles sejam limpos todo vez que eu reabrir o formulário

    ResponderExcluir
  18. Meus Caros, este tópico é muito antigo e não trabalho mais com essa ferramenta, infelizmente não saberei responder as questões.

    ResponderExcluir