Vídeo - Controle personalizado de acesso de usuários
Muitas pessoas entraram em contato comigo, solicitando um exemplo de controle personalizado de acesso de usuários. Resolvi, então, apresentar um exemplo projetado para interagir com a ribbon e mostrar para você, leitor, que é possível montar aplicativos de ótima qualidade no Access 2007/2010. Porém, para não deixar qualquer brecha na segurança é necessário que você assista a vídeo-aula, sobre o aplicativo que desenvolvi , chamado de OPEN , e o acrescente aos seus projetos.
Para quem está começando a usar o Access 2007/2010 , é preciso saber que a Microsoft retirou destas versões o único mecanismo profissional de proteção de dados nativo do Access (MDW). Por isso, temos que criar o nosso próprio mecanismo. E essa é uma das razões para que eu lhe ofereça este controle personalizado de usuários.
O projeto possui três tabelas, que se relacionam conforme você vê na figura abaixo:

Na vídeo-aula, eu explico a função de cada uma dessas tabelas.
Apenas três formulários são usados: o de login, o de cadastro de usuários e o do controle de permissões.
Login

Cadastro de usuários

Controle de permissões

Os códigos utilizados são poucos e bem simples. O principal deles é o que controla as propriedades de adição, exclusão e edição dos formulários.
Public Function fncPermissões(NomeForm As Form)
Dim filtro As String
filtro = "formulario = '" & NomeForm.Name & "'"
filtro = "Idfuncao = " & Nz(DLookup("idFuncao", "tblFunções", filtro), 0) & _
" AND idUsuario =" & login.id
If Nz(DLookup("bloqueada", "tblpermissõesUsuários", filtro), True) = True _
Or login.id = 0 Then
MsgBox "Acesso bloqueado...", vbInformation, "Aviso"
DoCmd.Close acForm, NomeForm.Name
Exit Function
End If
'Aqui são alteradas as propriedades do formulário
NomeForm.AllowEdits = Nz(DLookup("atualizar", "tblpermissõesUsuários", filtro), "false")
NomeForm.AllowDeletions = Nz(DLookup("excluir", "tblpermissõesUsuários", filtro), "false")
NomeForm.AllowAdditions = Nz(DLookup("inserir", "tblpermissõesUsuários", filtro), "false")
End Function
Para alterar dinamicamente, todos os controles da ribbon principal, é utilizado o método Invalidate, no formulário de login.
...
'revalida todos os controles objRibbon.Invalidate
...
Para entrar no modo estrutura do aplicativo exemplo, segure a tecla shift ao carregá-lo.
Senha do usuário admin > admin
Senha do usuário Avelino > 1234
Se não estiver conseguindo assistir o vídeo, faça o download no link abaixo.
Como EXIBIR a vídeo-aula em tela cheia?
1. clique na seta executar da tela abaixo
para iniciar a exibição do vídeo;
2. dê dois cliques rápidos na tela, quando o vídeo começar a ser
exibido.
Artigos Relacionados
O MDW (segurança em nível de usuário) morreu
Segurança máxima usando o OPEN
Vídeo - Criando ribbons (parte 1)
Sistema de vinculação de tabelas com Barra de Progresso
Manutenção e Sistema de Backup com Barra de Progresso
|
47 comentários Alan 19/11/2009 11:59:27 Bom dia, É impressionante como você consegue desenvoler as coisas no Access 2007. Parabéns pelo seu trabalho, e principalmente, por compratilhar com outras pessoas. Jeser Borges Cotrim 5/1/2010 22:40:47 Grande Avelino. Parabéns pelo excelente trabalho! Uma perguntinha, se me permite. É possível adaptar essa rotina para o Access 2003? Por favor, se possível, poste algo no GD. Com certeza ficaríamos muito gratos. Um forte abraço! Avelino Sampaio 6/1/2010 06:38:42 Jeser, tem sim , inclusive essa rotina tirei dos meus aplicativos 2003. O menu é configurado através do commandbars. Exemplo: CommandBars("Cadastros").Controls("Clientes").visible = False/true Sucesso Fábio Busnardo 15/1/2010 10:25:34 Meu cara tu é um montro no access....Muito bom o seu trabalho!!!! William Paiva 2/2/2010 18:14:10 Olá Avelino, boa tarde! Não estou conseguindo abrir o arquivo de exemplo, após inserir senha e dar ok nada acontece, seria possivel enviar ao meu e-mail. grato, William Paiva williamsilvapaiva@hotmail.com Pablo Luz 11/2/2010 18:28:05 Olá Avelino, Esse menu que aparece na aplicação (Abrir, Calculadora, Site, ...) onde é que eu edito ele? Fuçei tudo e não encontrei. pabloluz.ssa@gmail.com Abraços, Pablo Luz. Luis Alberto 12/2/2010 00:16:41 Boa noite Avelino, muito boa a video aula, eu sou iniciante no VBA e sinceramente me esta gostando muito, mais ainda com todos esses exemplos bons. Eu queria pedir um favor se fosse possível, você tem um passo a passo para poder colocar o sistema de accesso a usuarios (1 = accesso total, 2 = ler e gravar, 3 = somente leitura) mais o menos seria assim, é que no meu serviço crie um banco de dados feito em acces e minha chefe quer que coloque em rede para 7 maquinas, por isso que quero filtrar os acessos para que o usuáiros não possam fazer besteiras ao BD. Meu email é luvett11@gmail.com Obrigado pela atenção. Avelino Sampaio 12/2/2010 13:03:53 Pablo, tem que assistir minhas videos-aulas sobre ribbons, que eu ofereço gratuitamente aqui no site. Sucesso Avelino Sampaio 12/2/2010 13:09:03 Luís Alberto, sem um mínimo de conhecimento em VBA fica muito difícil poder te ajudar. De qualquer forma mandei um email para você com algumas dicas. Caso não tenha recebido, verifique seu Lixo Eletrônico. Sucesso Pablo Luz 19/2/2010 17:07:56 Boa tarde Avelino, Em Opções de Navegação>>Opções de Pesquisa, habilite Mostrar objetos ocultos e do sistema. Dessa forma tive acesso ao USysRibbons e editei os labels que eu precisava. Tenho acompanhado seus artigos e gostaria de adquirir o Monta Ribbon para o Banco em que eu trabalho. Emite NF? Como devo proceder para a aquisição? Pablo Luz 19/2/2010 17:17:53 Desenvolvi um sistema de controle de ativos e fornecedores com uma implementação contábil. Funciona bem, mas o sistema fica em uma pasta da rede que é acessada por quem tem acesso. Gostaria de separar o sistema das tabelas. Deixar uma espécie de cliente para quem precisar e as tabelas em outro local da rede. É possível fazer isso de forma segura? No access caso duas pessoas acessem o sistema simultaneamente realizando inclusões tenho confiabilidade na integridade dos dados? E no caso de exclusões e inclusões simultâneas? Agradeço antecipadamente, Pablo Luz. pablo@bancocapital.com.br Avelino Sampaio 22/2/2010 06:45:33 Pablo, eu te sugiro o meu vídeo sobre "segurança máxima usando o Open". Ensino, no access 2007, a divisão do bd e os cuidados quanto a segurança. te mandei um email com mais detalhes , inclusive sobre o MontaRibbons. Sucesso Avelino Sampaio 22/2/2010 06:50:43 João Ricardo, tenho recebido muitos pedidos das vídeo aulas. Agora em Março estarei montando um Banco de Dados com os vídeos. Vou criar um CD para quem não puder baixar ( o arquivo vai ficar grande ). te informo assim que ficar pronto. Sucesso Luís Moreira 3/3/2010 19:54:02 Caro Avelino, Estive analiando este método e parece interessante. Eu não utilizo ribbon, que alteração tenho de fazer no vba do formulário frmlogin? Obrigado Luís Moreira 4/3/2010 21:08:24 Avelino, Já estou implementado essa solução nuito interessante. Seria possível criar bloqueio para outro tipo de objectos? Por exemplo para relatórios? Assim, impedido de aceder a determinados reatórios era desnecessário desactivar todos os botões que acedem a esse relatório em inúmeros formulários. A minha aplicação utiliza Painel de Navegação, porque eu n sabia implementar ribbons, mas depois desse seu video, será meu próximo passo. Como posso adquirir seu MontaRibbons? Avelino Sampaio 5/3/2010 05:14:04 Luís Moreira, é possível sim e com poucas modificações. Entre em contato comigo através do link "contato" aqui do site ou pelo email: avelino(arroba)usandoaccess(ponto)com(ponto)br No aguardo MARCIO MELO MARTINS 29/3/2010 03:03:56 BOA NOITE! AVELINO Muito empolgante suas vídeos aulas, didática super prática, idéia lógica de expansão... com certeza quero adquirir seu Monta Ribbons e desde já peço permissão para implantar seu acesso personalizado que esta show, muito sucesso para ti, acredito que todos estudantes, profissionais, hobbista, etc que estudarem suas aulas passaram a ver o access 2007 com outros olhos, parabéns por todo seu trabalho, sugiro a venda de cds do MontaRibbons com suas vídeos aulas assim terá menos sobrecarga de acesso... estudei nessa madruga várias vídeos aulas por isso nem fui dormir, aprendi muitas coisas, perdi o sono por ter acesso a um material tão rico... lhi mandei um e-mail solicitando o material... não vejo a hora de começar aplicar os novos conceitos... Sou mais Brasil! "Muito sucesso para você" Obrigado por contribuir, sei que teu tempo é curto, espero ansiosamente a continuidade das vídeos aulas, uma idéia simples e barata de manter o teu site é fazer tipo um acesso por cadastro e crédito... Forte Abraço! Wallace 30/3/2010 14:44:44 Boa tarde Avalino Muito bacana seu sistema de login, porem gstaria de utilizá-lo no access 2003 e percebi que a rotina nao funciona. Teria como adaptá-lo? Você poderia fazer a gentileza se possivel de enviar as alterações para utilização no 2003 por e-mail? wallacegerardi@yahoo.com.br Obrigado! Sucesso pra vc! Braço Alan Rodrigo 6/4/2010 13:08:25 Boa tarde, tudo bem! Através dos seus ensinamentos, estou desenvolvendo uma aplicação com o controle de usuários. Pelo que pude entender, eu posso cadastrar na tabela de funções os formulário que desejo que ocorra o controel de usuário. Todavia, gostaria de saber (sem querer abusar), se é possível também incluir na tabela de funções, algumas tabelas e consultas. Se sim, como fazer? Agradeço desde já. Alan alan.silva@saofrancisco.edu.br CARLOS MAZUCATO 12/4/2010 19:34:34 AVELINO, ACHEI MUITO LEGAL SEUS VIDEOS, CREIO QUE VAI SER MUITO ULTIL PARA MIM POIS ESTOU USANDO O ASPMAKER QUE RELACIONA O BANCO DE DADOS ACESS COM AS PAGINAS DE ACESS... UM ABRAÇO CARLOS MAZUCATO MAZUCATO@HOTMAIL.COM Avelino Sampaio 13/4/2010 05:53:50 Alan, pra mim seu email sempre apresenta problemas. Não teria outro email pra gente se comunicar ? Carlos, fico muito feliz de poder colaborar. O manterei informado sobre os novos artigos e vídeos. Sucesso Manoel Galle 13/4/2010 08:39:55 Bom dia Avelino, Em primeiro lugar eu quero te parabenizar por esta maravilhosa iniciativa de compartilhar os seus conhecimentos cmo a galera. Reforçando o que disse o Wallace, se possível eu gostaria que voce enviasse as alterações necessárias para uso no 2003, se puder envie no meu email: mgalle@uol.com.br. Desde de já muito obrigado e felicidades e muito sucesso. Manuel Missias Gomes Silva 19/4/2010 20:58:12 Só tecnologo em Informatica e já faz um bom tem que me formei, não trabalho na area mas as vezes tento desenvolver alguns pequenos programas no access e preciso enteder melhor estar ferramentas, você tem material que aborda a parte de programação/codigo do access para vender: e-mail: mmgomes_silva@ig.com.br Clemilson Borges 28/4/2010 23:53:49 Show de bola. Gostaria de saber se tens interesse em implementar na empresa onde trabalho e onde tenho um banco de dados e que gostaria de colocar a inteligência a nivel de usuario apesentada aqui. por favor, entre em contato comigo, e-mail:clemilson.silva@ldcsev.com Avelino Sampaio 29/4/2010 15:09:49 manuel, enviei informações para o teu email. Clemilson, Obrigado pela oferta mas não será possível. lembrando que este aplicativo pode ser utilizado livremente em qualquer projeto. Não precisa nem fazer referências. Lembrando que para acessar a estrutura, basta manter pressionada a tecla SHIFT na inicialização ou a tecla F11 quando carregar o aplicativo. Sucesso clemilson borges 29/4/2010 22:21:57 Quero acessar um banco de dados pela rede de lugares diferentes, cerca de 15 usuarios. Qual a melhor saida, sendo que não quero instalar uma licenca em cada maquina e sabendo da limitacao do runtime com os problemas de seguranca de macro de tornar lento a carga dos dados, mesmo com o banco dividido. Seria possivel publicar na web o formulario de acesso a inclusao de dados? Abraco clemilson borges 29/4/2010 22:24:25 Prezado, Fiz o download do maestro.accdb e importei algumas tabelas para dentro dele, no entanto as novas tabelas e formularios não ficam disponiveis no formulario de permissoes. Quais seriam os passos? Abraco Avelino Sampaio 30/4/2010 05:17:10 Clemilson, A questão de segurança da macro tem como resolver. Leia o tutorial sobre macro de segurança e o CurrentProject.Istrusted. Vc também pode criar um script para adicionar um local seguro, que garente o seu aplicativo rodar no runtime sem problema algum. O runtime tem um pacote de atualização Sp2 fundamental, que garante uma melhor estabilidade e desempenho. Se a sua empresa tiver uma máquina rodando o Windows Server 2003 ou 2008 a melhor saída de todas é você utilizar o Terminal Services. Basta vc ter o Office 2007 instalado neste servidor e compartilhar seu aplicativo pelo Terminal. O desempenho é fantástico. Existe uma promessa com o Office 2010 de ser possível essa comunicação com a web, usando o SharePoint. Vamos ver se vai ser fumaça. Acredito que não. Maestro: Tabelas e consultas não são controladas pelas permissões. Apenas formulários e relatórios. Vc tem que alimentar a tabela tblFunções com as informações dos formulários. Assista novamente o vídeo pois poderá ajudar a visualizar melhor o projeto. Se precisar de mais detalhes, acesse o link Contato. Sucesso Romildo 1/5/2010 09:04:43 Gostaria de Criar um Controle de Tempo para um mini cyber, atraves do access, bem simples, porque estes que ja existem, sao pesados para os meus PC zinhos que ja quase não tem memoria apenas algumas lembranças .....Podem me ajudar?.. Bruno Miranda 6/5/2010 21:00:19 Boa Noite, Tudo ok? Avelino os meus parabéns pelas suas video aulas. Estou a implementar um controlo de usuários, no entanto gostaria de saber se é possivel ir buscar a informação dos utilizadores a LDAP? Obrigado Bruno Miranda Avelino Sampaio 7/5/2010 05:41:02 Bruno, Acesse o link abaixo e veja se atende: http://comunidade.itlab.com.br/eve/forums/a/tpc/f/273606921/m/672100824?r=874107824#874107824 Sucesso Avelino Sampaio 7/5/2010 05:44:38 Romildo, Entre em contato através do link "Contato" e me passe mais detalhes. Sucesso Alan 13/5/2010 14:07:49 Boa tarde, tudo bem! Sem querer abusar. Você teria algum exemplo de como controlar o que os usuário fizeram no sistema? Exemplo: O usuário Admim, tem acesso a um relatório do que os usuários Alan, João fizeram no sistema em determinado dia Agradeço pela atenção, e reitero meus agradecimentos e felicitações pelo seu trabalho. Alan alan@questaotrabalhista.com Edilson Mirandiba 16/5/2010 15:02:41 Gotei da video aula(Controle personalizado de acesso ao usuário), estava precisando dessa informação, pois estou começando trabalhar com access. Tem com vc me mandar via email por que ainda não tem net em casa.Sim e quando o CD das aulas ficar pronto mande um email. lopes.edilson@hotmail.com Moises Ribeiro Chagas 8/6/2010 02:32:54 Ola Avelino, prazer em conhece-lo aqui pelo site. Tenho assistido as suas aulas. São ótimas e estou muito interessado. Preciso de sua ajuda. Estou construindo um BD de visitantes e visitados. Os visitantes possuem uma carteirinha de visitas com foto e numero de identificação. Digamos que, ao realizar a visita a pessoa apresenta a carteira, eu digito o numero , e aparecem os demais dados na consulta em tempo real. Ou seja, o nome do visitante, o nome do visitado, o nº da carteira, e o grau de parentesco com o visitado vão sendo apresentados a medida que digito o numero de identificação das carteiras. Esses dados caem automaticamente em um relatório, que é impresso no encerramento do período de visitas. Preciso, nesse banco de dados que estou construindo, um controle de acesso de usuários e suas devidas permissões. Além disso, precisaria de proteção total ao banco de dados, para que um usuário qualquer não o deletasse atráves do windows - meus documentos, pois esse banco fica armazenado lá não é? Pode me enviar informações. Abraço e sucesso. moises.ribeiro.chagas@gmail.com Marcelo Pereira 29/6/2010 07:22:07 Avelino, Meus parabéns!!! O seu conhecimento em Access é extraordinário e mais do que isso, sua iniciativa em disponibilizar o fruto de seu trabalho é louvável. Dentre as dúvidas que surgiram, qual é a senha para acessar o banco ao ser inicializado o aplicativo? (Shift + F11... e a senha?). Abraço Avelino Sampaio 29/6/2010 10:28:07 Marcelo, A senha do Maestro_be.accdb é "a1234" Maestro.accdb não tem senha. Sucesso MARCIO BACCARINI VIEGAS 11/7/2010 09:48:31 Excelentes aulas. O programa MontaRibbons é especialmente util, muito bem pensado e de uma facilidade imensa para usar, mesmo por quem não entende nada de programação, (como eu). O preço cobrado tem um custo/beneficio excelente. Parabens Avelino. Consuelo 20/7/2010 13:47:30 Como alterar mensagem de erro. Utilizando um Formulário e duplicamos a chave. Matricula de funcionário não pode ser Auto numeração. Chave primária – inteiro longo indexado Sim (Duplicação não autorizada). consuelo.uliano@pop.com.br Helder 27/7/2010 22:35:16 Desculpa so avelino mas não consigo acessar o Maestro_be.accdb qual a senha ou como acessar Josino 4/8/2010 07:31:34 Avelino, quando abro o Maestro pede uma senha, qual seria a senha ? Parabéns pelo excelente trabalho. Abs. Avelino Sampaio 4/8/2010 13:59:18 Helder e Josino A senha do Maestro_be.accdb é "a1234" Já o Maestro.accdb possui usuários e senhas indicadas no artigo. Sucesso Sandro Mendes 10/8/2010 17:38:14 Boa Tarde, gostaria de saber como abrir esse exemplo pois fica dando um aviso de macro ativa desde já agradeço. Sandro Mendes 10/8/2010 18:34:06 Boa Tarde, Avelino gostaria da sua ajuda primeiro não consigo abrir o seu aplicativo de exemplo segundo tenho que fazer com que um aplicativo que fiz imprima uma etiqueta na impressora Zebra quando mando imprimir ela sai mais de uma etiqueta. Desde já agradeço Meu e-mail sandroleguas@hotmail.com Avelino Sampaio 11/8/2010 06:08:59 Sandro, Lei o artigo no meu site sobre "macro do segurança" que você irá resover a questão para abrir o Maestro. Sobre a impressora zebra, acesse o link abaixo e você terá muitas informações http://comunidade.itlab.com.br/eve/forums?a=search&reqWords=zebra&use_forum_scope=on&forum_scope=273606921 Sucesso Leandro 3/9/2010 00:02:21 Prezado Avelino, Não consigo assistir a video aula. Desenvolvi um sistema na empresa em que trabalho, porém preciso ter controle de acesso de usuários, permissões, etc..cada um com seu login e senha. Tem como vc me enviar a video aula por e-mail, se puder me dar umas dicas.... Coloquei uma senha geral para abrir o arquivo, porem a minha maior necessidade é cada operador ter seu login e senha e especificar o que cada usuário pode ou não fazer....(incluir registros, excluir, gerar relatórios...) Desde já grato Leandro lbmcel@hotmail.com Avelino Sampaio 3/9/2010 06:18:16 Leandro e Edvaldo, a vídeo-aula agora está disponível para download no próprio artigo. Leandro. alem de assitir a vídeo-aula apresentada aqui, aconselho você aprender a montar ribbons. Faço um convite para você conhecer o MontaRibbons. Sucesso |
