Pode utilizar a ação de macro DefinirValor para definir o valor de um campo do Access, controlo ou propriedade num formulário, um formulário folha de dados ou um relatório.

Nota: Não pode utilizar a ação de macro SetValue para definir o valor de uma propriedade do Access que devolve um objeto.

Nota: Esta ação não será permitida se a base de dados não for fidedigna.

Definição

A ação de macro SetValue tem os seguintes argumentos.

Argumento de ação

Descrição

Item

O nome do campo, controlo ou propriedade cujo valor pretende definir. Introduza o nome do campo, do controlo ou da propriedade na caixa Item na secção Argumentos de Ação da janela de estrutura da macro. Tem de utilizar a sintaxe completa para fazer referência a este item, como o nome do controlo (para um controlo no formulário ou relatório a partir do qual o macro foi chamado) ou Forms!formname! nome do controlo. Este argumento é obrigatório.

Expressão

O expressão Access utiliza para definir o valor para este item. Tem de utilizar sempre a sintaxe completa para fazer referência a quaisquer objetos na expressão. Por exemplo, para aumentar o valor num controlo Salarial num formulário Funcionários em 10 por cento, utilize Forms!Employees!Salary*1.1. Este argumento é obrigatório.

Nota: Não deve utilizar um sinal de igual (=) antes da expressão neste argumento. Se o fizer, o Access avalia a expressão e, em seguida, utiliza este valor como expressão neste argumento. Isto pode produzir resultados inesperados se a expressão for uma cadeia.

Por exemplo, se escrever ="Cadeia1" para este argumento, o Access avalia primeiro a expressão como String1. Em seguida, utiliza String1 como a expressão neste argumento, esperando encontrar um controlo ou propriedade com o nome String1 no formulário ou relatório que chamou a macro.

Nota: Numa base de dados do Access (.mdb ou .accdb), clique no botão Criar para utilizar o Construtor de Expressões para criar uma expressão para qualquer um destes argumentos.

Observações

Pode utilizar esta ação para definir um valor para um campo ou controlo num formulário, numa folha de dados de formulário ou num relatório. Também pode definir o valor para quase todas as propriedades de controlo, formulário e relatório em qualquer vista. Para saber se uma determinada propriedade pode ser definida através de uma macro e em que vistas pode ser definida, consulte o tópico de Ajuda dessa propriedade no Visual Basic Revisor.

Também pode definir o valor de um campo na tabela subjacente de um formulário, mesmo que o formulário não contenha um controlo vinculado ao campo. Utilize a sintaxe Forms!formname! fieldname na caixa Item para definir o valor para tal campo. Também pode consultar um campo na tabela subjacente de um relatório com os Relatórios de sintaxe! nome do relatório! fieldname, mas tem de existir um controlo no relatório vinculado a este campo ou o campo tem de ser referido numa controlo calculado no relatório.

Se definir o valor de um controlo num formulário, a ação de macro DefinirValor não aciona as regras de validação ao nível do formulário do controlo, mas aciona as regras de validação ao nível da tabela do campo subjacente se o controlo for um controlo vinculado. A ação de macro SetValue também aciona o recálculo, mas o recálculo pode não ocorrer imediatamente. Para acionar a repintura imediata e forçar a conclusão do recálculo, utilize a ação de macro RepaintObject . O valor definido num controlo através da ação de macro SetValue também não é afetado por um máscara de introdução definido na propriedade InputMask do controlo ou do campo subjacente.

Para alterar o valor de um controlo, pode utilizar a ação SetValue numa macro especificada pela propriedade de evento AfterUpdate do controlo. No entanto, não pode utilizar a ação SetValue numa macro especificada pela propriedade do evento BeforeUpdate de um controlo para alterar o valor do controlo (embora possa utilizar a ação SetValue para alterar o valor de outros controlos). Também pode utilizar a ação SetValue numa macro especificada pela propriedade BeforeUpdate ou AfterUpdate de um formulário para alterar o valor de quaisquer controlos no registo atual.

Nota: Não pode utilizar a ação de macro SetValue para definir o valor dos seguintes controlos:

  • Controlos vinculados e controlos calculados em relatórios.

  • Controlos calculados em formulários.

Sugestões

Pode utilizar a ação de macro DefinirValor para ocultar ou mostrar um formulário na vista Formulário. Introduza Forms!formname. Visível na caixa Item e Não ou Sim na caixa Expressão. Definir uma propriedade Visível de um formulário modal como Não oculta o formulário e torna-o modelado. Definir a propriedade como Sim apresenta o formulário e torna-o modal novamente.

Alterar o valor ou adicionar novos dados num controlo através da ação DefinirValor numa macro não aciona eventos como BeforeUpdate, BeforeInsert ou Change que ocorrem quando altera ou introduz dados nestes controlos na interface de utilizador. Estes eventos também não ocorrem se definir o valor do controlo através de um módulo Visual Basic for Applications (VBA).

Esta ação não está disponível num módulo VBA. Defina o valor diretamente no VBA.

Exemplo

Definir o valor de um controlo com uma macro

A seguinte macro abre o formulário Adicionar Produtos a partir de um botão no formulário Fornecedores. Mostra a utilização das ações de macro Echo, Close, OpenForm, SetValue e GoToControl . A ação SetValue define o controlo SupplierID no formulário Produtos para o fornecedor atual no formulário Fornecedores. Em seguida, a ação GoToControl move o foco para o campo IDDaCategoria, onde pode começar a introduzir dados para o novo produto. Esta macro deve ser anexada ao botão Adicionar Produtos no formulário Fornecedores.

Ação

Argumentos: Definição

Comentário

Echo

Eco Ativado: Não

Pare a atualização do ecrã enquanto a macro está em execução.

Fecho

Tipo de Objeto: Formulário

Nome do Objeto: Lista de Produtos

Guardar: Não

Feche o formulário Lista de Produtos.

AbrirFormulário

Nome do Formulário: Produtos

Ver: Formulário

Modo de Dados: Adicionar

Modo de Janela: Normal

Abra o formulário Produtos.

SetValue

Item: [Forms]![ Produtos]! [IDDoForforcedor]

Expressão: IDDoForforcedor

Defina o controlo IDForforforcedor para o fornecedor atual no formulário Fornecedores.

IrParaControlo

Nome do Controlo: CategoryID

Aceda ao controlo CategoryID.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.