Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No Access, foram dois tipos de módulos: módulos padrão e módulos de classe. No Access 95, os módulos de classe existiam apenas na associação com um formulário ou relatório. No Access 97, eles também existiam na guia módulos da janela do banco de dados.
Criar objetos com módulos de classe
Use um módulo de classe para criar uma definição para um objeto personalizado. O nome que você salva o módulo de classe se tornará o nome do objeto personalizado. Os procedimentos público Sub e função que você define no módulo de classe para ficar métodos personalizados do objeto. O público propriedade permitem, obter propriedade, e propriedade definida procedimentos tornam-se de propriedades do objeto.
Depois de definir procedimentos no módulo de classe, você pode criar o novo objeto ao criar uma nova instância da classe. Para criar uma nova instância de uma classe, declare uma variável do tipo definido por classe. Por exemplo, se o nome da classe for ABasicClass, você deve criar uma nova instância da seguinte maneira:
Dim abc As New ABasicClass
Quando você executa o código que contém essa declaração, o Visual Basic cria nova instância. Em seguida, você pode aplicar seus métodos e propriedades usando a variável. Por exemplo, se você tivesse definido um método personalizado chamado ListNames, poderia aplicá-lo da seguinte maneira:
abc.ListNames
Criar a instância do padrão de uma classe de forma (Access 95)
Ao abrir um formulário no modo de formulário, seja a partir da interface do usuário ou a partir do Visual Basic, você cria uma instância do módulo classe desse formulário. Em outras palavras, você designa um espaço na memória onde o objeto existe atualmente e pode então chamar seus métodos e definir ou retornar suas propriedades do código, como faria para qualquer objeto interno. O mesmo acontece quando você abre um relatório na visualização de impressão.
Quando você faz referência a um formulário no código do Visual Basic, normalmente está trabalhando com a instância padrão da classe do formulário. Classe de forma tem apenas uma instância do padrão. Você também pode criar várias instâncias de classe do mesmo formulário usando o Visual Basic. Quando você cria várias instâncias de classe de um formulário, cria instâncias não padrão.
Existem quatro maneiras de criar a instância padrão de um formulário. Você pode abrir um formulário existente usando a interface do usuário, executando o método OpenForm do objeto DoCmd, chamando o método CreateForm e alternando o novo formulário no modo formulário, ou usando o Visual Basic para criar uma variável do tipo Form para referir-se à instância padrão. O exemplo a seguir abre um formulário de funcionários e pontos de um formulário variável de objeto:
Dim frm As Form
DoCmd.OpenForm "Employees"
Set frm = Forms!Employees
Access também oferece um atalho que permite que você abrir um formulário e se referir a um método ou propriedade daquele formulário ou um de seus controles em uma única etapa. Veja o módulo de classe do formulário conforme mostrado no exemplo a seguir:
Form_Employees.Visible = True
Form_Employees.Caption = "New Employees"
Ao executar esse código, o Access abrirá o formulário Funcionários no Modo de Exibição de Formulário se ele ainda não estiver aberto e definir a legenda do formulário como "Novos Funcionários". O formulário não fica visível até que você defina explicitamente sua propriedade Visible como True. Quando concluir o procedimento que chama esse código executar, nesta instância do formulário é destruída; ou seja, o formulário é fechado.
Se você tentar executar este código quando o formulário de funcionários estiver aberto no modo de Design, o Access gera um erro de tempo de execução. O formulário deve ser aberto no modo de exibição formulário ou não abra de jeito nenhum.
Se você utilizar esta sintaxe para alterar uma propriedade do formulário ou um de seus controles, essa alteração será perdida quando a instância do formulário for destruído. Isso também acontece sempre que você altera a definição de uma propriedade de um formulário no modo de formulário. Altere a propriedade no modo Design e salve a alteração com o formulário.
Criar várias instâncias de não padrão de formulários
Você pode criar várias instâncias não padrão da classe de um formulário se quiser exibir mais de uma instância do formulário ao mesmo tempo. Por exemplo, é preciso exibir os registros de um funcionário e do gerente do funcionário ao mesmo tempo. Você pode criar uma instância de classe do formulário Employees para exibir o registro do funcionário e outra para exibir o registro do gerente.
Para criar novas instâncias não padrão da classe de um formulário no Visual Basic, declare uma variável para a qual o tipo seja o nome do módulo classe do formulário. Você precisa incluir a palavra-chave New na declaração da variável. Por exemplo, o código seguinte cria uma nova instância do formulário Employees e a atribui a uma variável do tipo Form:
Dim frm As New Form_Employees
Esta instância não padrão do formulário não ficará visível até você definir explicitamente sua propriedade Visible.
Quando terminar a execução do procedimento que cria esta instância, ela será removida da memória, a não ser que você tenha declarado a variável que a representa como uma variável de nível de módulo. Já que as variáveis no nível do módulo retêm seus valores até que sejam redefinidos com o comando Redefinir do menu Executar ou com o botão Redefinir da barra de ferramentas, o formulário ficará aberto se a variável tiver sido declarada como uma variável no nível do módulo.
Quaisquer propriedades que você definir afetará essa instância da classe do formulário, mas não serão salvas com o formulário. Além disso, uma nova instância da classe do formulário não poderá ser criada se o formulário estiver aberto no modo de design.
Uma instância não padrão de uma classe de formulário não pode ser referida pelo nome na coleção Forms. Consulte-o apenas por número de índice. Como você pode criar várias instâncias não padrão de um formulário, e cada instância tem o mesmo nome, você pode ter mais de um formulário com o mesmo nome na coleção Forms, sem qualquer meio de diferenciá-los diferente pelo número de índice.
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.