É 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?
+4
scandinavo
DFROBINSON
Uilson Brasil
WEBE
8 participantes
[Resolvido]Navegação no Formulario via modulo VBA
WEBE- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 30
Registrado : 31/01/2011
- Mensagem nº1
[Resolvido]Navegação no Formulario via modulo VBA
Uilson Brasil- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1039
Registrado : 23/04/2013
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,
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
- Respeito às regras :
Sexo :
Localização :
Mensagens : 30
Registrado : 31/01/2011
- Mensagem nº3
Ok, obrigado.
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- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1039
Registrado : 23/04/2013
Webe,
Sendo assim, espero que algum ninja possa te ajudar nessa tarefa.
Abraços,
Sendo assim, espero que algum ninja possa te ajudar nessa tarefa.
Abraços,
.................................................................................
::: Uilson Brasil
::: Design in Microsoft Access
DFROBINSON- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 61
Registrado : 21/04/2012
- Mensagem nº5
DoCmd.GoToRecord
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.
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
- Respeito às regras :
Sexo :
Localização :
Mensagens : 61
Registrado : 21/04/2012
- Mensagem nº6
Correção
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
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
- Respeito às regras :
Sexo :
Localização :
Mensagens : 30
Registrado : 31/01/2011
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
- Respeito às regras :
Sexo :
Localização :
Mensagens : 30
Registrado : 31/01/2011
- Mensagem nº8
If ou select case
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.
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 4/1/2014, 01:42, editado 3 vez(es)
DFROBINSON- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 61
Registrado : 21/04/2012
- Mensagem nº9
Botões de Navegação
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
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
- Respeito às regras :
Sexo :
Localização :
Mensagens : 30
Registrado : 31/01/2011
- Mensagem nº10
Obrigado
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.
Grato.
DFROBINSON- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 61
Registrado : 21/04/2012
- Mensagem nº11
Select Case
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.
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
- Respeito às regras :
Sexo :
Localização :
Mensagens : 30
Registrado : 31/01/2011
- Mensagem nº12
Obrigado
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.
Valeu.
scandinavo- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1059
Registrado : 11/11/2009
- Mensagem nº13
Re: [Resolvido]Navegação no Formulario via modulo VBA
Acho que é isto que você quer.
Não é de minha autoria, mas o todo conhecimento deve ser compartilhado.
Boa sorte
Não é de minha autoria, mas o todo conhecimento deve ser compartilhado.
Boa sorte
WEBE- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 30
Registrado : 31/01/2011
- Mensagem nº14
Muuito Obrigado
É 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.
Obrigado todos que tentaram ajudar.
scandinavo- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1059
Registrado : 11/11/2009
- Mensagem nº15
Re: [Resolvido]Navegação no Formulario via modulo VBA
è isso ai e valeu pelo retorno
Boa sorte
Boa sorte
Uilson Brasil- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1039
Registrado : 23/04/2013
- Mensagem nº16
Re: [Resolvido]Navegação no Formulario via modulo VBA
Webe,
Faltou só o resolvido.
Abraços,
Faltou só o resolvido.
Abraços,
.................................................................................
::: Uilson Brasil
::: Design in Microsoft Access
pcnet- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 302
Registrado : 16/12/2015
- Mensagem nº17
Re: Navegação no Formulario via modulo VBA
Boa tarde,
Seria possível disponibilizar o módulo VBA?
Muito obrigado!
Cumprimentos
Seria possível disponibilizar o módulo VBA?
Muito obrigado!
Cumprimentos
deyvsonaguiar- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 35
Registrado : 27/09/2015
- Mensagem nº18
Como implementar com DAO?
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
erro em tempo de execução '91': a variável do objeto ou a variável do bloco 'with' não foi definida
jeanrocha- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 35
Registrado : 13/08/2013
- Mensagem nº19
Re: Navegação com VBA
Recentemente tive de retirar os controles do formulário e tive de implementar um módulo com os botões de navegação assim como habilitar e desabilitar as edições, minha questão foi que quase todos os comando funcionaram apenas o botão anterior no módulo não Funcionou, fiz alguns testes e a melhor forma que ficou foi:
No Módulo ficou assim:
Function ExcluirBtn(argFrm As Form)
On Error GoTo fim 'Caso não tenha dados não exibe mensagem de erro
DoCmd.RunCommand acCmdDeleteRecord 'Exclui o registro
fim:
End Function
Function PrimeiroBtn(argFrm As Form)
On Error GoTo fim 'caso já esteja no primeiro não exibe a mensagem de erro
DoCmd.GoToRecord , , acFirst
fim:
End Function
Function AnteriorBtn(argFrm As Form) 'Não funcionou, acredito ser na terceira linha o problema
On Error GoTo fim
If Form.CurrentRecord = 1 Then 'se posição do registro = 1
DoCmd.GoToRecord , , acFirst 'mantem ponteiro no primeiro registro
Else
DoCmd.GoToRecord , , acPrevious 'retornar posição até chegar o 1º registro
End If
fim:
End Function
Function ProximoBtn(argFrm As Form)
On Error GoTo fim
If Not IsNull("") Then 'se registro não for vazio...
DoCmd.GoToRecord , , acNext 'mover para proximo registro…
Else
DoCmd.GoToRecord , , acLast 'permanece no ultimo registro.
End If
fim:
End Function
Function UltimoBtn(argFrm As Form)
On Error GoTo fim ' se já estiver no último não exibe mensagem de erro e permanece no último.
DoCmd.GoToRecord , , acLast 'move ponteiro para ultimo registro
fim:
End Function
Os Botões dos Forms do DB chamam a função correspondente.
Exemplo, no evento ao clicar do botão excluir ficou assim:
Private Sub btnExcluir_Click()
Call ExcluirBtn(Me)
Me.Refresh
End Sub
No Botão anterior está:
Private Sub btnAnterior_Click()
Call AnteriorBtn(Me)
Me.Refresh
End Sub
Apenas o Botão anterior não funcionou, como ainda não consegui resolver e sempre vejo que vocês são muito atentos a estas questões eu agradeceria muito a ajuda.
Gostaria de Elogiar especialmente o tópico aqui do site que desabilita todos os campos editáveis do Form em um módulo, e demais funções, o cara que fez arrasou e me ajudou muito, este módulo é uma adaptação dele.
Desde já agradeço aos que se empenharam.
No Módulo ficou assim:
Function ExcluirBtn(argFrm As Form)
On Error GoTo fim 'Caso não tenha dados não exibe mensagem de erro
DoCmd.RunCommand acCmdDeleteRecord 'Exclui o registro
fim:
End Function
Function PrimeiroBtn(argFrm As Form)
On Error GoTo fim 'caso já esteja no primeiro não exibe a mensagem de erro
DoCmd.GoToRecord , , acFirst
fim:
End Function
Function AnteriorBtn(argFrm As Form) 'Não funcionou, acredito ser na terceira linha o problema
On Error GoTo fim
If Form.CurrentRecord = 1 Then 'se posição do registro = 1
DoCmd.GoToRecord , , acFirst 'mantem ponteiro no primeiro registro
Else
DoCmd.GoToRecord , , acPrevious 'retornar posição até chegar o 1º registro
End If
fim:
End Function
Function ProximoBtn(argFrm As Form)
On Error GoTo fim
If Not IsNull("") Then 'se registro não for vazio...
DoCmd.GoToRecord , , acNext 'mover para proximo registro…
Else
DoCmd.GoToRecord , , acLast 'permanece no ultimo registro.
End If
fim:
End Function
Function UltimoBtn(argFrm As Form)
On Error GoTo fim ' se já estiver no último não exibe mensagem de erro e permanece no último.
DoCmd.GoToRecord , , acLast 'move ponteiro para ultimo registro
fim:
End Function
Os Botões dos Forms do DB chamam a função correspondente.
Exemplo, no evento ao clicar do botão excluir ficou assim:
Private Sub btnExcluir_Click()
Call ExcluirBtn(Me)
Me.Refresh
End Sub
No Botão anterior está:
Private Sub btnAnterior_Click()
Call AnteriorBtn(Me)
Me.Refresh
End Sub
Apenas o Botão anterior não funcionou, como ainda não consegui resolver e sempre vejo que vocês são muito atentos a estas questões eu agradeceria muito a ajuda.
Gostaria de Elogiar especialmente o tópico aqui do site que desabilita todos os campos editáveis do Form em um módulo, e demais funções, o cara que fez arrasou e me ajudou muito, este módulo é uma adaptação dele.
Desde já agradeço aos que se empenharam.
Alexandre Fim- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3495
Registrado : 13/12/2016
- Mensagem nº20
Re: [Resolvido]Navegação no Formulario via modulo VBA
Webe boa noite,
Na maioria dos sistemas atuais de mercado (SAP, TOTVS, Mastersaf e etc) não utilizam ferramenta de navegação.
O que eu sugiro é criar os principais botões de comando:
- Sair
- Novo Registro
- Salvar
- Alterar
- Excluir
- Cancelar (ou Desfazer)
- Pesquisar
No botão "Pesquisar", faz a chamada para um formulário de Pesquisa (genérico) de dados pertinente ao cadastro em que estiver fazendo no momento.
Os botões de navegação seria útil em telas de cadastro com poucos registros, mas, imagina uma tela de Cadastro de Produtos com mais de 10.000 registros? Se torna inviável a navegação de registro para fazer a busca do produto desejado.
Sugiro ainda que você se preocupe mais em manter a qualidade da informação e criando controles e validações, para que o usuário final não digite "qualquer coisa".
Espero ter ajudado.
Abraço
Na maioria dos sistemas atuais de mercado (SAP, TOTVS, Mastersaf e etc) não utilizam ferramenta de navegação.
O que eu sugiro é criar os principais botões de comando:
- Sair
- Novo Registro
- Salvar
- Alterar
- Excluir
- Cancelar (ou Desfazer)
- Pesquisar
No botão "Pesquisar", faz a chamada para um formulário de Pesquisa (genérico) de dados pertinente ao cadastro em que estiver fazendo no momento.
Os botões de navegação seria útil em telas de cadastro com poucos registros, mas, imagina uma tela de Cadastro de Produtos com mais de 10.000 registros? Se torna inviável a navegação de registro para fazer a busca do produto desejado.
Sugiro ainda que você se preocupe mais em manter a qualidade da informação e criando controles e validações, para que o usuário final não digite "qualquer coisa".
Espero ter ajudado.
Abraço
alecardoso gosta desta mensagem
jeanrocha- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 35
Registrado : 13/08/2013
- Mensagem nº21
Re: [Resolvido]Navegação no Formulario via modulo VBA
Outra opção é ativar e desativar os próprios comandos do Formulário access
No meu caso funcionou da seguinte forma:
Código para o botão salvar e ao abrir o formulário
Código para o editar e novo registro
Módulo com o bloqueio e desbloqueio de botões e campos editáveis, a minha modificação foi separar o bloqueio dos campos editáveis dos botões para se adequar as minha necessidades.
Agradeço novamente ao fórum e espero que seja útil este código.
No meu caso funcionou da seguinte forma:
Código para o botão salvar e ao abrir o formulário
- Código:
Function FormSalvo(argFrm As Form) ' Para o botão salvar
Form.ControlBox = False ' Desativa a caixa de controle (não funcionou comigo mas deixei)
Form.RecordSelectors = False ' Desabilita o seletor de registros
Form.NavigationButtons = True ' Desabilita a navegação de registros
Form.ScrollBars = False ' Desabilita as barras de rolagem
Call DesBloqueioBtn(Me) 'Habilita todos os botões
Call BloqueioTxt(Me) 'Bloqueia todos os campos editáveis.
Me.btnSalvar.Enabled = False ' Desabilita apenas o salvar
End Function
Código para o editar e novo registro
- Código:
Function FormEditavel(argFrm As Form) ' Para o botão editar e novo
Form.ControlBox = False ' Desativa a caixa de controle
Form.RecordSelectors = False ' Desabilita o seletor de registros
Form.NavigationButtons = False ' Desabilita a navegação de registros
Form.ScrollBars = False ' Desabilita as barras de rolagem
Call BloqueioBtn(Me) ' Bloqueia botões
Call DesBloqueioTxt(Me) ' Desbloqueia campos editáveis
Me.btnSalvar.Enabled = True ' Habilita apenas o botão salvar
Me.Cod.Enabled = False ' Desabilita o campo código
End Function
Módulo com o bloqueio e desbloqueio de botões e campos editáveis, a minha modificação foi separar o bloqueio dos campos editáveis dos botões para se adequar as minha necessidades.
- Código:
Function BloqueioBtn(argFrm As Form)
Dim ctl As Control
For Each ctl In argFrm.Controls
With ctl
Select Case .ControlType
'Deixar inativo todos os botões de comando
Case acCommandButton
.Enabled = False
End Select
End With
Next ctl
End Function
Function DesBloqueioBtn(argFrm As Form)
Dim ctl As Control
For Each ctl In argFrm.Controls
With ctl
Select Case .ControlType
'Deixar inativo todos os botões de comando
Case acCommandButton
.Enabled = True
End Select
End With
Next ctl
End Function
Function BloqueioTxt(argFrm As Form)
Dim ctl As Control
For Each ctl In argFrm.Controls
With ctl
Select Case .ControlType
'Bloquear todas as caixas de texto
Case acTextBox
.Enabled = False
'Bloquear todas as caixas de combinação
Case acComboBox
.Enabled = False
'Bloquear todas as caixas de seleção
Case acCheckBox
.Enabled = False
'Deixar inativo todos as ListBox
Case acListBox
.Enabled = False
End Select
End With
Next ctl
End Function
Function DesBloqueioTxt(argFrm As Form)
Dim ctl As Control
For Each ctl In argFrm.Controls
With ctl
Select Case .ControlType
'Bloquear todas as caixas de texto
Case acTextBox
.Enabled = True
'Bloquear todas as caixas de combinação
Case acComboBox
.Enabled = True
'Bloquear todas as caixas de seleção
Case acCheckBox
.Enabled = True
'Deixar inativo todos as ListBox
Case acListBox
.Enabled = True
End Select
End With
Next ctl
End Function
Agradeço novamente ao fórum e espero que seja útil este código.
alecardoso gosta desta mensagem
» [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação
» [Resolvido]Recuperar a navegação no formulario
» [Resolvido]Consulta em Formulario Navegacao
» [Resolvido]Dúvida com formulario de navegação
» [Resolvido]Problema com Navegação no Formulário
» [Resolvido]Recuperar a navegação no formulario
» [Resolvido]Consulta em Formulario Navegacao
» [Resolvido]Dúvida com formulario de navegação
» [Resolvido]Problema com Navegação no Formulário