MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Bloquear teclas via função

    Compartilhe
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 525
    Registrado : 18/01/2013

    Bloquear teclas via função

    Mensagem  CassioFabre em Qui 20 Out 2016, 12:29

    Bom dia amigos,

    Quero, humildemente, disponibilizar este exemplo que bolei para bloqueio de teclas via função. Não sei se já tem outro exemplo parecido, se sim, não foi intenção de plágio ou qualquer coisa assim, de fato nunca tomei conhecimento de tal exemplo.

    Tomei por base o artigo do Avelino para captura de teclas (usandoaccess.com.br/dicas/como-interceptar-teclas-e-combinacoes-de-teclas.asp?id=1) e montei uma função para bloqueio ou mesmo atribuição diferente dessas teclas. A diferença aqui se tem pelo bloqueio a nível de usuário. No exemplo postado eu bloqueei a combinação alt+F11 apenas para usuários fora do grupo "Administradores", ou seja, 'Gerentes', por exemplo, não terão acesso ao código fonte do sistema.

    Eu desabilitei também a tecla F1, para não abrir a ajuda do Access, mas caso tenha um formulário de ajuda do seu próprio sistema, da pra abrir este formulário pela tecla F1, bastando substituir, no módulo bloqTecla, o trecho:

    Código:
    Case 112 'F1
        MsgBox str & " e não tem acesso à ajuda do access pela tecla F1", vbCritical, "Erro"
        bloqTecla = True

    Por:

    Código:
    Case 112 'F1
        OpenForm "seuFormAjuda"
        bloqTecla = True


    Para utilizar a função, copie e cole o trecho do evento Ao Pressionar Tecla do formExemplo em todos os formulários no mesmo evento. Também marque a opção Visualizar Teclas par Sim.

    Se tiver um formulário menu principal, insira o código nele. Caso não tenha um formulário de menu principal ou algo assim, deverá ter um formulário oculto com o código do formExemplo colocado como descrito acima e este formulário não poderá ser fechado em momento nenhum. Assim, as teclas serão bloqueadas em todos os momentos.

    Qualquer duvida, podem me contatar.

    --------------------------------------------------------------------
    Teclas bloqueadas para usuários não Administradores:

    F1 -> msgbox
    F11 -> msgbox
    Alt+F11 -> msgbox

    Usuario: admin
    Senha: 123

    Usuario: usuario
    senha: 123
    --------------------------------------------------------------------

    Edit 03/04/2017

    Para função dar certo, habilite a opção "Usar Teclas Especiais do Access" no Menu do Office > Banco de Dados Atual


    --------------------------------------------------------------------
    Quaisquer erros ou melhorias, por favor avisem.

    Abraço.
    Anexos
    Bloquear Teclas.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (107 Kb) Baixado 100 vez(es)


    Última edição por CassioFabre em Seg 03 Abr 2017, 12:20, editado 1 vez(es)

    srantonio
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 30/08/2010

    Re: Bloquear teclas via função

    Mensagem  srantonio em Ter 25 Out 2016, 07:44

    Muito bom tava quebrando a cabeça com isso e agora através do seu código vou ter uma dica legal.. valeu mesmo
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Bloquear teclas via função

    Mensagem  Noobezinho em Ter 25 Out 2016, 14:32

    Olá Cassio


    Nos meus aplicativos eu acrescento o grupo ou nível desenvolvedor, deixando o nível Administradores para que comprou

    o aplicativo ou alguém de confiança dele.

    Assim, somente eu tenho acesso total.

    Também utilizo uma caixa de combinação para mostrar os nomes (no teu caso Login) dos usuários.

    Estou enviando o teu exemplo modificado para você ver que o nome do desenvolvedor não aparece

    na lista suspensa da combobox.

    Somente irá aparecer quando o desenvolvedor digitar o nome e der enter, indo para a caixa de texto Senha.

    Espero que goste, eu acho muito prático.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 525
    Registrado : 18/01/2013

    Bloquear teclas via função

    Mensagem  CassioFabre em Ter 25 Out 2016, 15:59

    Boa tarde, Noobezinho.

    Obrigado pela contribuição. Eu já conhecia essa técnica da listbox. De fato é muito mais prático para o usuário não ter que digitar todo o login para acesso ao sistema. Mas eu não sou muito fã disso por conta de segurança: acho que "não saber" o login do usuário é uma dificuldade a mais pra quem quiser entrar na conta de alguém e fazer quaisquer alterações no sistema, seja por má fé ou qualquer outra coisa. Talvez seja até preciosismo demais de minha parte.

    Quanto ao grupo "desenvolvedor" realmente não tinha passado pela minha cabeça, uma vez que nos meus aplicativos eu tenho um grupo "Gerentes" quem tem totais poderes dentro do sistema, exceto os disponíveis aos "Desenvolvedores (Administradores)", talvez realmente seja uma ótima ideia a se implementar no futuro.

    Abraço.

      Data/hora atual: Ter 12 Dez 2017, 10:13