Aprendendo sobre o Método OpenForm do objeto DoCmd

Reading time: 3 minutes

Aprendendo sobre o Método OpenForm do objeto DoCmd

Este é um dos métodos mais utilizados quando se trata do objeto DoCmd, portanto não deixe de ver este tutorial: Aprendendo sobre o Método OpenForm do Objeto DoCmd.

Conceitualmente este método tem como função abrir um formulário, mas a medida que aprendemos sobre os argumentos, podemos identificar outras possibilidades e utilizar os recursos que o método nos proporciona.

A sintaxe deste método é:

DoCmd.OpenForm(FormName, View, FilterName, WhereCondition, DataMode, WindowsMode, OpenArgs)

Agora, vamos estudar sobre cada parâmetro deste método:

1 – FormName

É um argumento OBRIGATÓRIO. Representa o nome do formulário do Access (entre aspas). Ex: “frmClientes”

2 – View

É um argumento OPCIONAL. É como o formulário será exibido. A contante padrão deste argumento é o acNormal caso seja omitido, mas ele pode ter outras opções, tais com:

  • acLayout: o formulário é aberto no Modo Layout;
  • acPreview: o formulário é aberto no modo Visualizar impressão;
  • acDesign: o formulário é aberto no Modo Design
  • acFormDS: o formulário é aberto no Modo Folha de Dados;
  • acFormPivotChart: o formulário é aberto no modo Gráfico Dinâmico;
  • acFormPivotTable: o formulário é aberto no modo Tabela Dinâmica;

3 – FilterName

É também um argumento OPCIONAL. É o nome de uma consulta do Banco de Dados atual.

4 – WhereCondition

É um argumento OPCIONAL. Uma expressão que representa um critério de abertura do formulário. Este argumento só funciona para formulários com a fonte de registro associada a uma tabela ou consulta.

Este argumento ode ser usado de 3 maneiras distintas. Vamos supor que eu queira exibir o formulário frmClientes no registro cujo o cliente possua o código 25:

1ª Forma:

DoCmd.Openform "frmClientes", , , "iDCliente=25"

2ª Forma:

DoCmd.Openform "frmClientes", WhereCondition:="iDCliente=25"

3ª Forma:

Dim strCriterio as String

strCriterio = "iDCliente=25"
DoCmd.Openform "frmClientes", , ,strCriterio

5 – DataMode

É um argumento OPCIONAL. Ele especifica o modo de entrada de dados. Se aplica apenas para os formulários abertos no Modo Formulário ou Folha de Dados. Possui as seguintes constantes:

  • acFormAdd: quando for adicionar um novo registro;
  • acFormEdit: o usuário pode editar e adicionar um novo registro ;
  • acFormPropertySettings: o usuário pode alterar as propriedades do formulário;
  • acFormReadOnly: o usuário só pode exibir os registros;

6 – WindowsMode:

É um argumento OPCIONAL. Especifica o modo de janela no qual o formulário é aberto. Caso esta constante seja omitida a acWindowNormal é a padrão para este argumento. Porém há outras constantes, que são:

  • acIcon: é aberto o formulário minimizado na barra de tarefas do windows;
  • acHidden: o formulário é ocultado;
  • acDialog: o formulário é aberto no formato de Caixa de Diálogo.

7 – OpenArgs:

É um argumento OPCIONAL. Ele é um argumento que possui várias utilidades. Ele trabalha melhor em conjunto com o evento “Open” do formulário.

Vamos entender como funciona o Argumento OpenArgs:

Caso você tenha um formulário contínuo e deseja-se que, ao abrir o formulário, o foco fosse direcionado para um determinado dado, por exemplo o cliente ‘Marcos Pereira’.

accessfacil.com

O 1º passo para este processo, vamos criar a seguinte rotina no evento ‘Ao Abrir’ do formulário acima:

Private Sub Form_Open(Cancel As Integer)

    Dim strNome as String

    strNome = Forms!frmListaClientes.OpenArgs

    If Len(strNome) > 0 Then

       DoCmd.GoToControl "Nome"
       DoCmd.FindRecord strNOME, , True, , True, , True  

    End If

End Sub

Neste 2º passo, podemos criar um formulário que poderemos criar um botão e criar uma rotina e associar ao evento ‘Ao Clicar do botão

Private Sub Comando4_Click()
   Call AbrirFormulario
End Sub

O procedimento abaixo deverá estar fixado em um Módulo a parte:

Sub AbrirFormulario()

  DoCmd.OpenForm "frmListaClientes", acNormal, , , acFormReadOnly, , "Marcos Pereira"
    
End Sub

Ao abrir o frmListaClientes o foco será direcionado para o cliente cujo o nome é ‘Marcos Pereira’ e poderia ser qualquer que fosse definido no procedimento.

accessfacil.com

Espero que este artigo possa ajudar e caso tenha alguma dúvida, coloque nos comentários aqui embaixo!

Um forte abraço!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *