MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Navegação no Formulario via modulo VBA

    Compartilhe

    WEBE
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 31/01/2011

    Navegação no Formulario via modulo VBA

    Mensagem  WEBE em Seg 30 Dez 2013, 17:50

    É possível criar um módulo contendo os controles comuns entre os formulários como por exemplo, 'Novo Registro, Apagar, Avançar, Anterior, Salvar, Primeiro Registro, Ultimo... e fazer referencia a eles em todos os forms? Como seria isto?

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: Navegação no Formulario via modulo VBA

    Mensagem  Uilson Brasil em Seg 30 Dez 2013, 18:11

    Webe,

    Os comandos de navegação são tão simples que é inviável pensar em criar um módulo para tais.

    Outro situação é desabilitar e/ou habilitar campos em um determinado formulário ao salvar, alterar, inserir já que para cada formulário existem campos com nomenclaturas diferentes.


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    WEBE
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 31/01/2011

    Ok, obrigado.

    Mensagem  WEBE em Seg 30 Dez 2013, 19:02

    Endendo sr. Uilson. Todos os botões são realmente simples. Inclusive todos os meus forms os contém, e quase todos feitos com o próprio assistente do access. Mas se é possível, mesmo sendo simples, gostaria de aprender, ver como seria e testar nos meus projetos. De qualquer forma, grato pela resposta e disposição em ajudar.

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: Navegação no Formulario via modulo VBA

    Mensagem  Uilson Brasil em Seg 30 Dez 2013, 19:05

    Webe,

    Sendo assim, espero que algum ninja possa te ajudar nessa tarefa.


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    DFROBINSON
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 21/04/2012

    DoCmd.GoToRecord

    Mensagem  DFROBINSON em Seg 30 Dez 2013, 23:34

    Boa noite Webe
    Para navegar entre os registros usando VBA existem os comandos:
    - DoCmd.GoToRecord, , acPrevious, acNext, acFirst, , acLast, acNewRec

    Para registro anterior (AcPrevious) e seguinte (acNext) tu deves testar a posição do registro no conjunto de dados e uma maneira de fazer isso é assim:

    Private Sub cmdAnterior_Click()
       With Recordset
           If Not .AbsolutePosition = 0 Then
               DoCmd.GoToRecord , , acPrevious
           End If
       End With
    End Sub

    Private Sub cmdProximo_Click()
       With Recordset
           If .AbsolutePosition > 0 And _
              .AbsolutePosition < .RecordCount - 1 Then
               DoCmd.GoToRecord , , acNext
           End If
       End With
    End Sub

    Assim evitarás de tentar ir para registro anterior ao primeiro ou posterior ao último o que geraria uma mensagem de erro em tempo de execução.

    Espero ter ajudado.

    Daniel Robinson.

    DFROBINSON
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 21/04/2012

    Correção

    Mensagem  DFROBINSON em Ter 31 Dez 2013, 17:27

    Olá Webe.
    Segue uma correção:

    Private Sub cmdProximo_Click()
      With Recordset
          If .AbsolutePosition < .RecordCount - 1 Then
              DoCmd.GoToRecord , , acNext
          End If
      End With
    End Sub

    Att.

    Daniel Robinson

    WEBE
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 31/01/2011

    Re: Navegação no Formulario via modulo VBA

    Mensagem  WEBE em Ter 31 Dez 2013, 23:25

    Obrigado pela resposta Daniel Robinson. Fiz uns testes aqui e ficou muito bom. No entanto estes comandos devem ser inseridos nos botões em cada um de meus formulários não e isto? Teria como a gente organiza-los em um modulo (Todos em um... Avançar, Salvar, Primeiro...)pra não repetirmos em todos os forms ... e chamarmos através de uma Call xxx ?

    WEBE
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 31/01/2011

    If ou select case

    Mensagem  WEBE em Qui 02 Jan 2014, 15:01

    Pessoal, tentei o seguinte,

    Public botoesNavegacao

    Select case Navegacao
       
        Case btnPrimeiro_Click = Clicked
        btnPrimeiro_click = True
        Msgbox "Você Clicou no Botão PRIMEIRO"
        btnPrimeiro=false
       
        Case btnUtimo_Click = Clicked
        btnUtimo_click = True
        Msgbox "Você Clicou no Botão ULTIMO"
         btnUtimo = False
       
        Case btnAnterior_Click = Clicked
        btnAnterior_Click = True
        Msgbox "Você Clicou no Botão ANTERIOR"
        btnAnterior = false
       
        Case btnProximo_click = Cliked
        btnAnterior_Click = True
        Msgbox "Você Clicou no Botão PRÓXIMO"
        btnAnterior = False

    End Select

    End Sub

    No Evento ao Clicar de cada Botão tenho Call botoesNavegacao


    Funciona, mas o código continua a ser executado independente do botão que eu cliquei. Aí executa todas as ações dos outros botões também. Como parar o Código caso uma das opções sejam verdadeiras? Ex. Se eu clicar no btnPrimeiro, ele deveria entender que não poderia passar para o próximo case, DEVERIA e finalizar a ação.

    TEntei usar o if, mas acontecia a mesma coisa. Existe alguma função ou comando que identifica qual botão foi clicado? Tentei "Cliked" e "No Clicked", mas sem sucesso.


    Última edição por WEBE em Sab 04 Jan 2014, 01:42, editado 3 vez(es)

    DFROBINSON
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 21/04/2012

    Botões de Navegação

    Mensagem  DFROBINSON em Sab 04 Jan 2014, 00:19

    Olá Webe.

    A ideia de criar um módulo com as funções dos botões de navegação é interessante mas eu não saberia como implementá-la.
    Não sei se ao chamares a função e esta testar a ".AbsolutePosition" se ela vai estar utilizando o recordset do form de onde foi executado o call.
    Sugiro que faças alguns testes. Também podes criar um form ou módulo com essa codificação montada e sempre que fores criar um novo form copiar esse conjunto de códigos pra dentro do form.

    Abraço.

    Daniel Robinson

    WEBE
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 31/01/2011

    Obrigado

    Mensagem  WEBE em Sab 04 Jan 2014, 00:34

    Obrigado pelo interesse em ajudar. Eu insisto nesta questão, pq além do Aprendizado, tenho um projeto, aqui que em alguns formulários, junto com os botões de navegação de registro terão outros códigos, e para evitar que se misturem e fiquem muito extensos, gostaria deste módulo. Saberia portanto, se há algum erro no código acima, "Select Case", independente dos comando de navegação, deveria funcionar. Mesmo porque nos testes acima tem apenas umas "MsgBox" certo? E as mesmas não estão respeitando as condições...

    Grato.

    DFROBINSON
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 21/04/2012

    Select Case

    Mensagem  DFROBINSON em Sab 04 Jan 2014, 00:57

    Nunca utilizei esse tipo de código com "Select Case" mas examinando-o suspeito que possa haver erro de sintaxe:

    Experimente trocar "= Cliked" por "= Clicked"  (incluindo a letra "c" antes da letra "k").
    No fragmento "Case btnAnterior" parece estar faltando "= Clicked"

    Será que pode ser isso ?

    Abraço

    Daniel R.

    WEBE
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 31/01/2011

    Obrigado

    Mensagem  WEBE em Sab 04 Jan 2014, 01:39

    Obrigado pelas observações, mas conferindo aqui, no meu código estes erros não estão presentes. Penso que foi ao digitá-los aqui no fórum que cometi estes erros de digitação, uma vez que quando postei os mesmos, eu não pude apenas copiá-los, pois não estava em meu PC onde está meu bd.

    Valeu.

    scandinavo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 293
    Registrado : 11/11/2009

    Re: Navegação no Formulario via modulo VBA

    Mensagem  scandinavo em Qua 15 Jan 2014, 21:22

    Acho que é isto que você quer.

    Não é de minha autoria, mas o todo conhecimento deve ser compartilhado.



    Boa sorte

    WEBE
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 31/01/2011

    Muuito Obrigado

    Mensagem  WEBE em Qui 16 Jan 2014, 12:04

    É exatamente isto que procurava. 100%. Muito obrigado Scandinavo. Créditos a você nos bancos onde usarei e infelizmente não sabemos o outro contribuinte. Mas valeu mesmo.
    Obrigado todos que tentaram ajudar.
     cheers

    scandinavo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 293
    Registrado : 11/11/2009

    Re: Navegação no Formulario via modulo VBA

    Mensagem  scandinavo em Qui 16 Jan 2014, 22:52

    è isso ai e valeu pelo retorno



    Boa sorte

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: Navegação no Formulario via modulo VBA

    Mensagem  Uilson Brasil em Sex 17 Jan 2014, 15:10

    Webe,

    Faltou só o resolvido.


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    pcnet
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 104
    Registrado : 16/12/2015

    Re: Navegação no Formulario via modulo VBA

    Mensagem  pcnet em Qui 17 Mar 2016, 13:23

    Boa tarde,

    Seria possível disponibilizar o módulo VBA?
    Muito obrigado!

    Cumprimentos

    deyvsonaguiar
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 27/09/2015

    Como implementar com DAO?

    Mensagem  deyvsonaguiar em Dom 06 Nov 2016, 00:00

    Tentei o código acima e não consegui implementar chamando os controles desacoplados com DAO. Deu esta mensagem de erro:

    erro em tempo de execução '91': a variável do objeto ou a variável do bloco 'with' não foi definida

      Data/hora atual: Ter 06 Dez 2016, 05:46