Pode utilizar a ação de macro GoToControl em bases de dados de ambiente de trabalho do Access e aplicações Web do Access para mover o foco para o campo ou controlo especificados na registo atual do formulário aberto, folha de dados de formulário, folha de dados da tabela ou folha de dados de consulta. Pode utilizar esta ação quando quiser que um determinado campo ou controlo tenha o foco. Em seguida, este campo ou controlo pode ser utilizado para comparações ou ações LocalizarRegisto . Também pode utilizar esta ação para navegar num formulário de acordo com determinadas condições. Por exemplo, se o utilizador introduzir Não num controlo Casado num formulário de seguro de saúde, o foco pode ignorar automaticamente o controlo Nome do Cônjuge e passar para o controlo seguinte.
Definição
A ação GoToControl tem o seguinte argumento.
Argumento de ação |
Descrição |
Nome do Controlo |
Escreva o nome do campo ou controlo onde pretende colocar o foco. Este argumento é obrigatório. Nota: Introduza apenas o nome do campo ou controlo no argumento Nome do Controlo e não o identificador completamente qualificado, como [Forms]![ Produtos]! [ID do Produto] se estiver a utilizar uma base de dados de ambiente de trabalho do Access. |
Observações
Não pode utilizar a ação de macro GoToControl para mover o foco para um controlo num formulário oculto.
Sugestão: Pode utilizar a ação de macro GoToControl para mover para um subformulário, que é um tipo de controlo. Em seguida, pode utilizar a ação GoToRecord para mover para um registo específico no subformulário. Também pode mover para um controlo num subformulário através da ação GoToControl para mover primeiro para o subformulário e, em seguida, para o controlo no subformulário.
Para executar a ação GoToControl num módulo Visual Basic for Applications (VBA), utilize o método GoToControl do objeto DoCmd. Também pode utilizar o método SetFocus para mover o foco para um controlo num formulário ou qualquer um dos respetivos subformulários ou para um campo numa tabela, consulta ou folha de dados de formulário aberta.
Exemplos
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 Echo, Close, OpenForm, SetValue e GoToControl . A ação SetValue define o controlo ID do Fornecedor no formulário Produtos para o fornecedor atual no formulário Fornecedores. Em seguida, a ação GoToControl move o foco para o campo ID da Categoria, 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 |
Fechar formulário de 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 ID do Fornecedor para o fornecedor atual no formulário Fornecedores. |
IrParaControlo |
Nome do Controlo: CategoryID |
Aceda ao controlo ID da Categoria. |
Validar dados ao utilizar uma macro
A seguinte macro de validação verifica os códigos postais introduzidos num formulário de Fornecedores. Mostra a utilização das ações StopMacro, MessageBox, CancelEvent e GoToControl . A expressão condicional verifica o país/região e código postal introduzidos num registo do formulário. Se o código postal não estiver no formato correto para o país/região, a macro apresenta uma caixa de mensagens e não guarda o registo. Em seguida, a macro devolve-o ao controlo Código Postal, onde pode corrigir o erro. Esta macro deve ser anexada à propriedade AntesDeActualizar do formulário de Fornecedores.
Condição |
Ação |
Argumentos: Definição |
Comentário |
If IsNull([CountryRegion]) |
PararMacro |
Se PaísRegião for Nulo, o código postal não pode ser validado. |
|
Se [PaísRegião] Em ("França","Itália","Espanha") E Len([Código Postal]) <> 5 |
Caixa de Mensagens |
Mensagem: O código postal tem de ter 5 carateres. AvisoSonoro: Sim Tipo: Informações Título: Erro de Código Postal |
Se o código postal não tiver 5 carateres, apresentar uma mensagem. |
CancelarEvento |
Cancela o evento |
||
IrParaControlo |
Nome do Controlo: Código Postal |
||
Se [PaísRegião] Em ("Austrália","Singapura") E Len([Código Postal]) <> 4 |
Caixa de Mensagens |
Mensagem: O código postal tem de ter 4 carateres. AvisoSonoro: Sim Tipo: Informações Título: Erro de Código Postal |
Se o código postal não tiver 4 carateres, apresentar uma mensagem. |
CancelarEvento |
Cancela o evento |
||
IrParaControlo |
Nome do Controlo: Código Postal |
||
If ([CountryRegion] = "Canada") And ([Postal Code] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
Caixa de Mensagens |
Mensagem: O código postal não é válido. Exemplo de código Canadiano: H1J 1C3 AvisoSonoro: Sim Tipo: Informações Título: Erro de Código Postal |
Se o código postal não estiver correto para o Canadá, apresentar uma mensagem. (Exemplo do código canadiano: H1J 1C3) |
CancelarEvento |
Cancela o evento |