Como utilizar a técnica consulta por formulário (QBF) no Microsoft Access
Número original da BDC: 304428
Nota
Necessita de competências básicas de macro, programação e interoperabilidade. Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.accdb ou .mdb).
Resumo
Este artigo mostra-lhe como utilizar um formulário para especificar os critérios de uma consulta. Esta técnica é denominada consulta por formulário (QBF).
Mais Informações
Na técnica QBF, cria um formulário no qual introduz critérios de consulta. Este formulário contém caixas de texto em branco. Cada caixa de texto representa um campo numa tabela que pretende consultar. Só cria entradas nas caixas de texto para as quais pretende especificar critérios de pesquisa.
O formulário QBF assemelha-se a um formulário de introdução de dados que tem campos que correspondem aos campos numa tabela. Uma tabela com campos para Nome, Endereço, Cidade, Estado e Código Postal pode ter um formulário QBF com campos correspondentes. Para selecionar determinados registos, pode introduzir qualquer combinação de critérios de pesquisa no formulário. Pode especificar apenas uma cidade, uma cidade e um estado, ou apenas um código postal ou qualquer outra combinação. Os campos que deixar em branco são ignorados. Quando clica num botão de comando no formulário, o Access executa uma consulta que utiliza os critérios de pesquisa do formulário.
Para utilizar a técnica QBF, siga estes passos:
Abra a base de dados de exemplo Northwind.mdb.
Crie um novo formulário que não se baseie em nenhuma tabela ou consulta e guarde-o como QBF_Form.
No novo formulário, crie duas caixas de texto e um botão de comando com as seguintes propriedades. Em seguida, guarde o formulário:
Text box 1 ------------------ Name: WhatCustomer Text box 2 ------------------ Name: WhatEmployee Command button 1: ------------------ Caption: Search OnClick: QBF_Macro
Crie a seguinte nova macro e, em seguida, guarde-a como QBF_Macro:
Action: OpenQuery Query Name: QBF_Query View: Datasheet Data Mode: Edit
Crie a seguinte nova consulta baseada na tabela Encomendas e, em seguida, guarde-a como QBF_Query:
Field: CustomerID Sort: Ascending Criteria: Forms![QBF_Form]![WhatCustomer] Or Forms![QBF_Form]![WhatCustomer] Is Null Field: EmployeeID Sort: Ascending Criteria: Forms![QBF_Form]![WhatEmployee] Or Forms![QBF_Form]![WhatEmployee] Is Null NOTE: When you type the criteria, make sure that you type the entire criteria in a single Criteria field; do not split the criteria by placing the 'Or' section on a separate row. Field: OrderID Field: OrderDate
Abra QBF_Form na vista Formulário. Introduza as seguintes combinações de critérios. Clique em Procurar após cada combinação:
Customer ID Employee ID Result ------------------------------------------------------- <blank> <blank> All 830 orders AROUT <blank> 13 orders AROUT 4 4 AROUT orders for employee 4 <blank> 4 156 orders for employee 4
Depois de ver o conjunto de resultados de cada consulta, feche a janela Folha de Dados. Em seguida, inicie a sua próxima pesquisa. Sempre que clicar no botão Procurar , os parâmetros na consulta QBF filtram os dados com base nos critérios de pesquisa que especificou no formulário de consulta QBF.
Notas sobre os critérios do parâmetro QBF
A consulta QBF de exemplo neste artigo implementa critérios na consulta como
Formulários! FormName! NomeDoControloOu formulários! FormName! NomeDoControloÉ Nulo
para filtrar os dados. Estes critérios devolvem todos os registos correspondentes. Se o valor dos critérios for nulo, todos os registos serão devolvidos para o campo especificado.
Pode especificar qualquer um dos seguintes critérios alternativos para devolver resultados ligeiramente diferentes.
Nota
Nos seguintes critérios de exemplo, é utilizado um caráter de sublinhado (_) como um caráter de continuação de linha. Remova o caráter de sublinhado do fim da linha quando recriar estes critérios.
Como o Forms! FormName! ControlName& "*" ou _ Forms! FormName! NomeDoControloÉ Nulo
Esta instrução de critérios é a mesma que o exemplo de QBF acima, exceto que pode consultar com um caráter universal. Por exemplo, se introduzir "Jo" num campo através desta instrução de critérios, a consulta devolve todos os registos no campo que começam por "Jo". Isto inclui Johnson, Jones, Johanna, etc.
Entre Formulários! FormName! Data de Início e Formulários! FormName! Data Final ou _ Formulários! FormName! StartDate Is Null
Pode utilizar esta instrução de critérios para consultar um campo de data através das caixas de texto Data de Início e Data de Fim no formulário de consulta. Os registos cujas datas de início e de fim se enquadram entre os valores que especificar no formulário de consulta são devolvidos. No entanto, se omitir um valor de Data de Início no formulário, a consulta devolve todos os registos, independentemente do valor Data de Fim.
Como o Forms! FormName! ControlName& "*" ou é Nulo
Esta instrução de critérios devolve ambos os registos que correspondem aos critérios e registos nulos. Se os critérios forem nulos, todos os registos serão devolvidos. Tenha em atenção que o asterisco (*) é considerado um parâmetro porque faz parte de uma expressão Like maior. Uma vez que o asterisco é um valor de critérios hard-coded (por exemplo, Como "*"), são devolvidos registos com valores nulos.
Como IIf(IsNull(Forms!FormName! [ControlName]), _ "*",[Formulários]! [FormName]! [ControlName])
Esta instrução de critérios devolve todos os registos que correspondem aos critérios. Se não forem especificados critérios no formulário de consulta, são devolvidos todos os registos que não são nulos.
ISe(ÉNulo(Formulários!FormName! [ControlName]), _ [FieldName],[Forms]! [FormName]! [ControlName])
Isto devolve todos os registos que correspondem aos critérios. Se não forem especificados critérios no formulário de consulta, todos os registos que não são nulos são devolvidos (o mesmo resultado do exemplo acima).
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários