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!
ola amigo, há tempos estou precisando dessa dica.
ResponderExcluirno 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
Boa tarde!
ResponderExcluirNecessito 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.
Boa tarde!
ResponderExcluirDesculpem a demora, vida corrida demais.
Caso resolvido!
Valew cara o código deu certinho para o meu projeto.
ResponderExcluirum abração!
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...
ResponderExcluirBom dia amigo!
ResponderExcluir"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.
ola amigo, há tempos estou precisando dessa dica.
ResponderExcluirno 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
vc não tem um codigo que abra uma macro e não um formulario?
ResponderExcluircomo registrar o usuario na tabela ou relatorio incluindo a hora e data?
ResponderExcluirFavor 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
ResponderExcluirEu novamente, veja o meu código:
ResponderExcluirOption 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
Massa muito bom, obrigado mesmo, foi de muito proveito
ResponderExcluireu tbm n to conseguindo fiz tudo correto mais quando aperto ok tudo fica na mesma
ResponderExcluirBoa noite, usei o código como você orientou, mas quando executo ele abre um campo me pedindo o nome da macro...
ResponderExcluirvocê sabe o que pode ser isso...
madson
email: madson_cad@hotmail.com
Porque não funciona com Access 2010?
ResponderExcluirerro de compilação, era esperado Then or GoTo
AO EXECUTAR PEDE O CAMINHO DA MACRO
ResponderExcluirFaz tempo, mas vai a dica... Refaçam todas as aspas e vírgulas.
ResponderExcluirO tal do "copy and paste" traz transtornos!
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
ResponderExcluirMeus Caros, este tópico é muito antigo e não trabalho mais com essa ferramenta, infelizmente não saberei responder as questões.
ResponderExcluir