Compartilhar via


Ação da macro SetValue

Aplica-se ao: Access 2013, Office 2013

Você pode usar a ação SetValue para definir o valor de um campo do Microsoft Access, o controle ou a propriedade em um formulário, uma folha de dados do formulário ou um relatório.

Observação

  • Não é possível usar uma ação SetValue para definir o valor de uma propriedade do Access que retorna um objeto.
  • Essa ação não será permitida se o banco de dados não for confiável.

Setting

A ação SetValue tem os seguintes argumentos.

Argumento da ação

Descrição

Item

O nome do campo, controle ou propriedades cujo valor você deseja definir. Insira o nome de campo, controle ou propriedades na caixa Item na seção Argumentos da Ação no painel do Construtor de Macros. Você deve usar a sintaxe completa para fazer referência a esse item, como controlname (para um controle no formulário ou relatório de onde a macro foi chamada) ou Forms!formname!controlname. Este é um argumento obrigatório.

Expressão.

A expressão que o Access usa para definir o valor para esse item. Você sempre deve usar a sintaxe completa para se referir a quaisquer objetos na expressão. Por exemplo, para aumentar o valor em um controle de Salário em um formulário de Funcionários em 10%, use 1.1Forms!Employees!Salary*1.1. Este é um argumento obrigatório.

OBSERVAÇÃO: você não deve usar um sinal de igual (=) antes da expressão nesse argumento. Nesse caso, o Access avalia a expressão e usa esse valor como a expressão nesse argumento. Isso poderá produzir resultados inesperados, se a expressão for uma cadeia de caracteres.

Por exemplo, se você digitar ="String1" para esse argumento, o Access primeiro avaliará a expressão como String1. Em seguida, ele usa a String1 como a expressão nesse argumento, esperando encontrar um controle ou propriedade denominada String1 no formulário ou relatório que chamou a macro.

Observação

Em um banco de dados do Access (.mdb ou .accdb), clique no botão Criar para usar o Construtor de Expressões para criar uma expressão para qualquer um desses argumentos.

Comentários

Você pode usar essa ação para definir um valor para um campo ou controle em um formulário, uma folha de dados do formulário ou um relatório. Você também pode definir o valor de quase todas as propriedades de controle, do formulário e do relatório, em qualquer modo de exibição. Para saber se uma propriedade em particular pode ser definida, usando uma macro e em quais modos de exibição podem ser definidas, consulte o tópico de Ajuda dessa propriedade no Editor do Visual Basic.

Você também pode definir o valor para um campo em uma tabela subjacente, mesmo que a forma não contenha um controle associado ao campo. Use os Formulários de sintaxe! formname! fieldname na caixa Item para definir o valor para esse campo. Você também pode se referir a um campo na tabela subjacente de um relatório usando os Relatórios de sintaxe! nome do relatório! fieldname, mas deve haver um controle no relatório associado a esse campo ou o campo deve ser referido em um controle calculado no relatório.

Se você definir o valor do controle no formulário, a ação SetValue não disparará regras de validação de nível de formulário de controle, mas acionará regras de validação de nível de tabela do campo subjacente, se o controle for um controle associado. A ação SetValue também aciona um recálculo, mas o recálculo pode não ocorrer imediatamente. Para acionar a repintura imediata e forçar o recálculo até a conclusão, use a ação RepaintObject. O valor definido em um controle, usando a ação SetValue, também não é afetado por uma máscara de entrada definida na propriedade InputMask do campo subjacente ou do controle.

Para alterar o valor de um controle, você pode usar a ação SetValue em uma macro especificada pela propriedade do evento AfterUpdate do controle. No entanto, é possível usar a ação SetValue em uma macro especificada pela propriedade do evento BeforeUpdate do controle para alterar o valor do controle (embora você possa usar a ação SetValue para alterar o valor dos outros controles). Você também pode usar a ação SetValue em uma macro especificada pela propriedade BeforeUpdate ou AfterUpdate de um formulário para alterar o valor de todos os controles do atual registro.

Observação

Não é possível usar a ação SetValue para definir o valor dos controles a seguir:

  • Controles associados e os controles calculados em relatórios.
  • Controles calculados em formulários.

Dica

Você pode usar a ação SetValue para mostrar ou ocultar um formulário no modo de exibição Formulário. Insira Formulários! formname**. Visible** na caixa Item e Não ou Sim na caixa Expressão. Definir uma propriedade modal Visível do formulário como Não oculta o formulário e o torna sem restrição. Definir a propriedade como Sim exibe o formulário e o torna restrito novamente.

Alterar o valor de ou adicionar novos dados em um controle, usando a açãoSetValue em uma macro não dispara eventos como BeforeUpdate, BeforeInsert ou Change que ocorrem quando você altera ou insere dados em um desses controles na interface do usuário. Esses eventos também não ocorrerem se você definir o valor do controle, usando um módulo do Visual Basic for Applications (VBA).

Essa ação não está disponível em um módulo do VBA. Defina o valor diretamente no VBA.

Exemplo

Definir o valor de um controle, usando uma macro

A macro a seguir abre o formulário Adicionar Produtos de um botão no formulário de Fornecedores. Mostra o uso das ações Echo, CloseWindow, OpenForm, SetValue e GoToControl. A ação SetValue define o controle SupplierID no formulário de Produtos dos fornecedores atuais no formulário Fornecedores. A ação GoToControl move o foco para o campo CategoryID, onde você pode começar a inserir dados do novo produto. Essa macro deve estar anexada ao botão Adicionar Produtos no formulário de Fornecedores.

Ação

Argumentos: Configuração

Comentário

Echo

Echo On: No

Interrompe a atualização de tela quando a macro é executada.

CloseWindow

Object Type: FormObject Name: Product List Save: No

Fecha o Formulário de Lista de Produtos.

OpenForm

Form Name: Products View: FormData Mode: AddWindow Mode: Normal

Abre o formulário de produtos.

SetValue

Item: [Forms]![Products]![SupplierID] Expression: SupplierID

Define o controle SupplierID para o fornecedor atual no formulário Fornecedores.

GoToControl

Control Name: CategoryID

Vai para o controle CategoryID.