Se quiser que uma consulta no Access peça valores de entrada sempre que for executada, pode criar uma consulta parametrizada.
Também pode criar um formulário para recolher valores de parâmetros que será utilizado para restringir os registos devolvidos para consultas, formulários ou relatórios. Este artigo explica como utilizar formulários para melhorar a sua utilização de parâmetros em consultas, formulários e relatórios.
Neste artigo
Descrição Geral
Pode utilizar critérios numa consulta parametrizada no Access para restringir o conjunto de registos que a consulta devolve. Poderá considerar que as caixas de diálogo fornecidas por uma consulta parametrizada são insuficientes para os fins pretendidos. Nesse caso, pode criar um formulário que se adeque melhor às suas necessidades de recolha de parâmetros. Este artigo explica como criar um formulário que recolha parâmetros de consultas e relatórios. Este artigo pressupõe que está familiarizado com a criação de consultas e a definição de parâmetros em consultas. No mínimo, deve estar familiarizado com a criação de uma consulta selecionar antes de continuar.
Este artigo fornece exemplos da utilização de parâmetros em consultas. Não fornece uma referência detalhada para especificar critérios.
-
Para obter mais informações sobre como criar uma consulta selecionar, consulte o artigo Criar uma consulta selecionar simples.
-
Para obter mais informações sobre consultas em geral, consulte o artigo Introdução às consultas.
-
Para obter mais informações sobre a definição de parâmetros em consultas, consulte o artigo Utilizar parâmetros para solicitar entradas ao executar uma consulta.
-
Para obter mais informações sobre como especificar critérios em consultas, consulte o artigo Exemplos de critérios de consulta.
Utilizar parâmetros em consultas
Utilizar um parâmetro numa consulta é tão fácil como criar uma consulta que utiliza critérios. Pode estruturar uma consulta para que esta lhe peça uma informação, como um número de peça, ou mais do que uma informação, como duas datas. Para cada parâmetro, uma consulta parametrizada apresenta uma caixa de diálogo em separado que lhe pede um valor para esse parâmetro.
Adicionar um parâmetro a uma consulta
-
Crie uma consulta selecionar e, em seguida, abra a consulta na vista de Estrutura.
-
Na linha Critérios de um campo ao qual pretende que seja aplicado um parâmetro, escreva o texto que pretende que a caixa de diálogo do parâmetro apresente, entre parêntesis retos. Por exemplo:
[Data de Início]
Ao executar a consulta parametrizada, o pedido é apresentado numa caixa de diálogo sem os parêntesis retos.
Também pode utilizar uma expressão com os seus pedidos de parâmetros. Por exemplo:
Entre [Data de Início] E [Data de Fim]
Nota: Será apresentada uma caixa de diálogo em separado para cada pedido de parâmetro. No segundo exemplo, são apresentadas duas caixas de diálogo: uma para Data de Início e uma para Data de Fim.
-
Repita o passo 2 para cada campo ao qual pretenda adicionar parâmetros.
Pode utilizar os passos anteriores para adicionar um parâmetro a qualquer um dos seguintes tipos de consulta: Selecionar, Cruzar, Acrescentar, Criar tabela ou Carregar.
Também pode adicionar um parâmetro a uma consulta união ao seguir estes passos:
-
Abra a consulta união na vista SQL.
-
Adicione uma cláusula WHERE que contenha todos os campos para os quais pretende pedir um parâmetro.
Se já existir uma cláusula WHERE, verifique se os campos em que pretende utilizar um pedido de parâmetro já estão na cláusula. Se não estiverem, adicione-os.
-
Em vez de utilizar um critério na cláusula WHERE, utilize um pedido de parâmetro.
Especificar tipos de dados de parâmetros
Também pode especificar o tipo de dados que um parâmetro deve aceitar. Pode especificar o tipo de dados para qualquer parâmetro, mas é especialmente importante especificar o tipo de dados para dados numéricos, de moeda ou de data/hora. Quando especificar o tipo de dados que um parâmetro deve aceitar, os utilizadores irão ver uma mensagem de erro mais útil se introduzirem o tipo de dados incorreto como, por exemplo, texto em vez de moeda.
Nota: Se um parâmetro estiver configurado para aceitar dados de texto, qualquer entrada é interpretada como texto e não é apresentada nenhuma mensagem de erro.
Para especificar o tipo de dados dos parâmetros numa consulta, siga estes passos:
-
Com a consulta aberta na vista Estrutura, no separador Estrutura, no grupo Mostrar/Ocultar, clique em Parâmetros.
-
Na caixa de diálogo Parâmetros da Consulta, na coluna Parâmetro, escreva o pedido para cada parâmetro para o qual pretende especificar o tipo de dados. Certifique-se de que cada parâmetro corresponde ao pedido utilizado na linha Critérios da grelha de estrutura da consulta.
-
Na coluna Tipo de Dados, selecione o tipo de dados para cada parâmetro.
Criar um formulário que recolha parâmetros
Apesar de terem uma caixa de diálogo incorporada que recolhe parâmetros, as consultas parametrizadas fornecem apenas funcionalidades básicas. Ao utilizar um formulário para recolher parâmetros, irá obter as seguintes funcionalidades:
-
A capacidade de utilizar controlos específicos para tipos de dados, como controlos de calendário para datas.
-
Persistência dos parâmetros recolhidos, para poder utilizá-los com mais do que uma consulta.
-
A capacidade de fornecer uma caixa de combinação ou de listagem para a recolha de parâmetros, o que lhe permite escolher a partir de uma lista de valores de dados disponíveis.
-
A capacidade de fornecer controlos para outras funções, como abrir ou atualizar uma consulta.
O seguinte vídeo mostra como pode criar um formulário simples para recolher parâmetros para uma consulta, em vez de utilizar as caixas de diálogo normalmente associadas a consultas parametrizadas.
Criar um formulário que recolha parâmetros para um relatório
Existem várias formas de abordar este cenário, mas iremos mostrar apenas uma técnica ao utilizar principalmente macros. Siga estes passos para criar um formulário que recolha parâmetros para um relatório.
-
Passo 2: criar um módulo de código para verificar se o formulário de parâmetros já foi carregado
-
Passo 3: criar uma macro que controle o formulário e o relatório
-
Passo 4: adicionar os botões de comando OK e Cancelar ao formulário
-
Passo 5: utilizar os dados do formulário como critérios de consulta
-
Passo 6: adicionar as ações de macro aos eventos de relatório
Passo 1: criar um formulário que aceite entradas
-
No separador Criar, no grupo Formulários, clique em Estrutura de Formulário.
-
Na vista Estrutura, prima F4 para mostrar a folha de propriedades e, em seguida, especifique as propriedades do formulário, conforme apresentado na seguinte tabela.
Propriedade
Definição
Legenda
Introduza o nome que pretende que seja apresentado na barra de título do formulário.
Vista Predefinida
Formulário Simples
Permitir Vista Formulário
Sim
Permitir Vista de Folha de Dados
Não
Permitir Vista de Tabela Dinâmica
Não
Permitir Vista de Gráfico Dinâmico
Não
Barras de Deslocamento
Nenhuma
Seletores de Registos
Não
Botões de Navegação
Não
Estilo de Limite
Caixa de diálogo
-
Para cada parâmetro que pretenda que o formulário recolha, clique em Caixa de Texto no grupo Controlos no separador Estrutura.
-
Defina as propriedades das caixas de texto, conforme apresentado na seguinte tabela.
Propriedade
Definição
Nome
Introduza um nome que descreva o parâmetro. Por exemplo, DataDeInício.
Formato
Selecione um formato que reflita o tipo de dados do campo de parâmetro. Por exemplo, selecione Data Geral para um campo de data.
-
Guarde o formulário e atribua-lhe um nome, como frmCritérios.
Passo 2: criar um módulo de código para verificar se o formulário de parâmetros já foi carregado
-
No separador Criar, no grupo Macros e Código, clique em Módulo.
Será aberto um novo módulo no Visual Basic Editor.
-
Escreva ou cole o seguinte código no Visual Basic Editor:
Function IsLoaded(ByVal strFormName As String) As Boolean Dim oAccessObject As AccessObject Set oAccessObject = CurrentProject.AllForms(strFormName) If oAccessObject.IsLoaded Then If oAccessObject.CurrentView <> acCurViewDesign Then IsLoaded = True End If End If End Function
-
Guarde o módulo com um nome exclusivo e, em seguida, feche o Visual Basic Editor.
Passo 3: criar uma macro que controle o formulário e o relatório
Ao utilizar as funcionalidades de submacro das macros do Access, podemos definir todos os passos que precisamos de executar numa única macro. Vamos criar quatro submacros (Caixa de Diálogo Abrir, Caixa de Diálogo Fechar, OK e Cancelar) para controlar as várias tarefas necessárias para este procedimento. Utilize a captura de ecrã abaixo como guia e crie uma nova macro com as seguintes submacros e ações. Nota: neste exemplo, o nosso formulário de parâmetros chama-se frmCritérios. Ajuste a sua macro para corresponder ao nome do formulário que criou anteriormente. Também terá de certificar-se de que clica em Mostrar Todas as Ações no separador Estrutura para ver todas as ações de macro.
Guarde e feche a macro. Atribua um nome à macro, por exemplo, Macro de Intervalo de Datas.
Passo 4: adicionar os botões de comando OK e Cancelar ao formulário
-
Abra novamente o formulário de parâmetros que criou na vista Estrutura.
-
Certifique-se de que a opção Utilizar Assistentes de Controlo, no grupo Controlos, no separador Estrutura não está selecionada.
-
No separador Estrutura, no grupo Controlos, clique em Botão.
-
Posicione o ponteiro por baixo das caixas de texto no seu formulário e, em seguida, arraste para criar um botão de comando OK.
-
Se a folha de propriedades não estiver visível, prima F4 para a apresentar.
-
Defina as propriedades do botão OK, conforme apresentado na seguinte tabela.
Propriedade
Definição
Nome
OK
Legenda
OK
Predefinição
Sim
AoFazerClique
Introduza o nome da macro. Por exemplo, Macro de Intervalo de Datas.OK.
-
Crie um botão de comando Cancelar e defina as suas propriedades, conforme apresentado na seguinte tabela.
Propriedade
Definição
Nome
Cancelar
Legenda
Cancelar
AoFazerClique
Introduza o nome da macro. Por exemplo, Macro de Intervalo de Datas.Cancelar.
-
Guarde e feche o formulário.
Passo 5: utilizar os dados do formulário como critérios de consulta
-
Abra a consulta que criou anteriormente na vista Estrutura.
-
Introduza os critérios dos dados. Utilize o objeto Formulários, o nome do formulário e o nome do controlo:
-
Por exemplo, numa base de dados do Access (.accdb ou .mdb), para o formulário com o nome frmCritérios, utilize a seguinte expressão para se referir aos controlos com o nome Data de Início e Data de Fim na consulta:
Entre [Formulários]![frmCritérios]![Data de Início] E [Formulários]![frmCritérios]![Data de Fim]
-
Passo 6: adicionar as ações de macro aos eventos de relatório
-
Abra o relatório que pretende utilizar na vista Estrutura.
-
Se a folha de propriedades não estiver visível, prima F4 para a apresentar.
-
Certifique-se de que a propriedade Origem de Registos do relatório está a utilizar a consulta parametrizada que definiu anteriormente.
-
Defina estas duas propriedades de relatório adicionais, conforme apresentado na seguinte tabela.
Propriedade
Definição
AoAbrir
Introduza o nome da macro. Por exemplo, Macro de Intervalo de Datas.Caixa de Diálogo Abrir.
AoFechar
Introduza o nome da macro. Por exemplo, Macro de Intervalo de Datas.Caixa de Diálogo Fechar.
No evento Abrir do relatório, o Access irá devolver-lhe as ações definidas na submacro Caixa de Diálogo Abrir do objeto Macro de Intervalo de Datas. Da mesma forma, quando fechar o relatório, o Access irá devolver-lhe as ações definidas na submacro Caixa de Diálogo Fechar do objeto Macro de Intervalo de Datas.
-
Guarde e feche o relatório.
Passo 7: experimentar
Agora que criou todos os objetos do Access, só falta experimentar. Abra o relatório na Vista de Relatório ou Pré-visualização e repare que, antes de o Access mostrar o relatório, o seu formulário de parâmetros é aberto no modo de caixa de diálogo. Introduza os critérios necessários nas caixas de texto que criou anteriormente e, em seguida, clique no botão de comando OK no formulário. Em seguida, o Access oculta o formulário (Visível = Não) e abre o relatório com apenas os dados que correspondem aos seus critérios. Isto funciona porque a consulta parametrizada em que o relatório é baseado consegue ler os valores nos controlos no formulário ocultado. Quando fechar o relatório, o Access também irá fechar o formulário de parâmetros.