MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

    Módulo

    avatar
    Vardost
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 18/05/2015

    Módulo Empty Módulo

    Mensagem  Vardost 15/11/2017, 13:38

    Como faço para que este código seja transformado em um módulo, visto que o mesmo vai em diversos formulários. Como não sou familiarizado com módulos não estou conseguindo criar este módulo. Segue código abaixo que está nos formulários:

           If IsNull(Me.Responsavel) Then
           Me.SenhaResp.SetFocus
           MsgBox "Senha incorreta ou não cadastrada", vbCritical
           Status = "Em Aberto"
           Else
           Status = "Fechado"
           End If


    Desde já agradeço e aguardo retorno.

    Att,

    Valdenir
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

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

    Módulo Empty Re: Módulo

    Mensagem  CassioFabre 17/11/2017, 17:48

    Boa tarde,

    Todos os formulários conterão os campos "Responsável" e "SenhaResp"?

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7956
    Registrado : 05/11/2009

    Módulo Empty Re: Módulo

    Mensagem  Alexandre Neves 18/11/2017, 20:35

    Boa noite,
    Código:
    Sub TestaSenha(frm As Form)
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        If IsNull(Forms(frm).Responsavel) Then
            Forms(frm).SenhaResp.SetFocus
            MsgBox "Senha incorreta ou não cadastrada", vbCritical
            Forms(frm).Status = "Em Aberto"
        Else
            Forms(frm).Status = "Fechado"
        End If
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Vardost
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 18/05/2015

    Módulo Empty Módulo

    Mensagem  Vardost 4/5/2021, 12:54

    Boa tarde, desculpem por não ter respondido este tópico antes, pois eu tinha dois logins e não sabia, ontem por acaso escolhi este login e coloquei uma senha e acabei entrando e nem sabia.

    Mas vamos lá. Eu acabei melhorando mais o código e gostaria de transformar este código abaixo descrito em um módulo assim facilitaria muito minha programação. Tenho um campo "senharesp" eu um campo "responsavel", o campo ao receber o foco tem este código que eu quero transformar em um módulo:

    Ao receber foco no campo "responsavel" tenho este código:

    Dim banco As DAO.Database
    Dim Rslogin As DAO.Recordset

    Set banco = CurrentDb
    Set Rslogin = banco.OpenRecordset("SELECT TBL_USUARIO.assinatura FROM TBL_USUARIO WHERE (((TBL_USUARIO.Senha) = '" & SenhaResp & "')) GROUP BY TBL_USUARIO.assinatura")

       If Rslogin.RecordCount > 0 Then
           Me.Responsavel = Rslogin(0)
           Exit Sub
       Else
           MsgBox "Senha incorreta ou não cadastrada", vbInformation, "SGQ"
           Me.SenhaResp.SetFocus
       End If
       
       Rslogin.Close
       banco.Close
       Set Rslogin = Nothing

    Como não consegui chamar peço também que me passe o código para eu chamar o módulo, pois o que testei aqui deu erro e não consegui entender a metodologia dos módulos ainda.

    Att,

    Valdenir
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    Módulo Empty Re: Módulo

    Mensagem  Alexandre Fim 4/5/2021, 14:28

    Valdenir bom dia,

    O módulos são objetos utilizados para declaração de variáveis globais (variáveis utilizados em todo o sistema), constantes, procedimentos, declarações de API do Windows e também armazenar funções genéricas, que são utilizadas em todo o sistema.
    Exemplos de funções:
    - Limpar campos
    - Bloquear campos
    - Habilitar/Desabilitar botões de comando de formulários
    - Funções para cálculos de nº de dias de um período de datas, cálculo de idade, valor de parcelas de um determinado valor
    - Validações de preenchimento de campos


    Espero ter ajudado a elucidar sua dúvida sobre Módulo.

    []'s

    FIM




    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    Vardost
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 18/05/2015

    Módulo Empty Módulo

    Mensagem  Vardost 4/5/2021, 14:34

    Bom dia Alexandre, obrigado pela resposta.

    Então este código que utilizo em todos os formulários não é possível criar um módulo para que eu não precise programar em todos os formulários.


    Att,

    valdenir
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    Módulo Empty Re: Módulo

    Mensagem  Alexandre Fim 4/5/2021, 18:58

    Olá Valdenir,

    Fiz um pequeno exemplo com módulo e algumas funções que são aplicadas em qualquer formulário.

    Tem o formulário de login que tem validação através de uma função, dentro do módulo.
    Módulo Logim_10

    Segue também formulário de exemplo com vários controles (textbox, combobox. listbox, option group, check box).
    Módulo Exempl11



    Espero ter ajudado

    []'s

    FIM
    Anexos
    Módulo AttachmentModeloLogin.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (45 Kb) Baixado 16 vez(es)


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    Vardost
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 18/05/2015

    Módulo Empty Módulo

    Mensagem  Vardost 5/5/2021, 13:16

    Bom dia Alexandre,

    Muito obrigado pela sua atenção, foi de muito valia este modelo e vou utilizar no meu projeto, porem especificamente conforme o meu código passado acima eu não valido a senha, eu simplesmente tenho um código que ao digitar a senha no formulário eu simplesmente preencho o campo "responsavel" através da senha e finalizo a tarefa através da mudança de status do form "Em aberto" para "Finalizado". Este código que eu queria transformar em um módulo, lembrando que todos os formulários tem o mesmo campo "senharesp" e "responsavel".
    Eu não consegui adaptar seu código e não consegui chamar o módulo.

    Espero ter sido claro.

    Att,

    Valdenir
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    Módulo Empty Re: Módulo

    Mensagem  Alexandre Fim 5/5/2021, 13:55

    Valdenir,



    Ao receber foco no campo "responsavel" tenho este código:

    Dim banco As DAO.Database
    Dim Rslogin As DAO.Recordset

    Set banco = CurrentDb
    Set Rslogin = banco.OpenRecordset("SELECT TBL_USUARIO.assinatura FROM TBL_USUARIO WHERE (((TBL_USUARIO.Senha) = '" & SenhaResp & "')) GROUP BY TBL_USUARIO.assinatura")

    If Rslogin.RecordCount > 0 Then
    Me.Responsavel = Rslogin(0)
    Exit Sub
    Else
    MsgBox "Senha incorreta ou não cadastrada", vbInformation, "SGQ"
    Me.SenhaResp.SetFocus
    End If

    Rslogin.Close
    banco.Close
    Set Rslogin = Nothing




    Conforme vc mencionou anteriormente, a validação é feita quando campo "Responsável" recebe o foco.
    Este campo já estava preenchido?

    Essa verificação do responsável é feita quando vai gravar o registro, tipo uma "Autorização" do responsável?

    Por gentileza, envie seu banco de dados (somente objetos envolvidos - formulário/tabela/consulta pertinentes ao problema) para análise.

    []'s

    FIM






    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    Vardost
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 18/05/2015

    Módulo Empty Módulo

    Mensagem  Vardost 5/5/2021, 14:37

    Sim alexandre,

    O código está no campo responsável ao receber o foco, neste caso se a senha estiver ok ele prossegue alterando o status do registro e preenchendo o campo responsavel conforme a senha buscou, caso contrario retorna ao campo senha do responsavel.

    Segue banco de dados. Com campo responsavel está o mesmo código acima que queria transformar em um módulo para assim diminuir as linhas de programações.
    Anexos
    Módulo AttachmentBE - Copia.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.1 Mb) Baixado 3 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    Módulo Empty Re: Módulo

    Mensagem  Alexandre Fim 5/5/2021, 16:07

    Valdenir,


    Eu te mandei os exemplos de módulos e funções com comentários no código.
    Vc leu? Conseguiu entender?

    No exemplo que vc mandou criei um módulo e dentro dele tem a função FN_ValidaResp que é chamada no setfocus do campo, porém, fica meio confuso quando o campo Responsavel recebe o foco.

    Segue versão.

    OBS.: O código do sistema está confuso ! Tem muitos objetos sem o devido nome. (ex. Botão "Comando4" que deveria estar como btn_gravar ou cmdGravar)
    Também estava com erros nas imagens dos botões e etc.

    Espero ter ajudado

    Boa sorte

    []'s


    FIM
    Anexos
    Módulo AttachmentBE_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.1 Mb) Baixado 12 vez(es)


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

      Data/hora atual: 16/6/2021, 15:58