Como criar uma consulta dinâmica com valores de um formulário de pesquisa no Access
Avançado: requer codificação especializada, interoperabilidade e competências multiutilizadas.
Este artigo aplica-se a um ficheiro de base de dados do Microsoft Access (.mdb) ou a um ficheiro de base de dados do Microsoft Access (.accdb) e a um ficheiro de projeto do Microsoft Access (.adp).
Resumo
Este artigo mostra-lhe como criar dinamicamente critérios para uma cadeia de consulta com valores de um formulário de pesquisa no Microsoft Access.
Mais informações
Por vezes, poderá querer criar um formulário que sirva de formulário de pesquisa. Quer ser capaz de introduzir valores no formulário e criar dinamicamente a cadeia SQL adequada. Os passos seguintes mostram-lhe como criar dinamicamente uma cadeia de consulta que utiliza o método BuildCriteria.
A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidades adicionais ou criar procedimentos para satisfazer os seus requisitos específicos. ATENÇÃO: se seguir os passos neste exemplo, modifique a base de dados de exemplo Northwind.mdb. Poderá querer fazer uma cópia de segurança do ficheiro Northwind.mdb e seguir estes passos numa cópia da base de dados.
Exemplo Passo a Passo
- Inicie o Access.
- No menu Ajuda , aponte para Bases de Dados de Exemplo e, em seguida, clique em Base de Dados de Exemplo northwind.
- Abra o formulário Clientes na vista Estrutura.
- Adicione um botão de comando e uma caixa de texto ao formulário e, em seguida, defina as seguintes propriedades:
Command Button
------------------------
Name: cmdSearch
Caption: Search
OnClick: Event Procedure
Text Box
--------------
Name: txtSQL
Width: 4.4583"
Height: 1.25"
- Defina a propriedade OnClick do botão de comando para o seguinte procedimento de evento:
Private Sub cmdSearch_Click()
On Error Resume Next
Dim ctl As Control
Dim sSQL As String
Dim sWhereClause As String
'Initialize the Where Clause variable.
sWhereClause = " Where "
'Start the first part of the select statement.
sSQL = "select * from customers "
'Loop through each control on the form to get its value.
For Each ctl In Me.Controls
With ctl
'The only Control you are using is the text box.
'However, you can add as many types of controls as you want.
Select Case .ControlType
Case acTextBox
.SetFocus
'This is the function that actually builds
'the clause.
If sWhereClause = " Where " Then
sWhereClause = sWhereClause & BuildCriteria(.Name, dbtext, .Text)
Else
sWhereClause = sWhereClause & " and " & BuildCriteria(.Name, dbtext, .Text)
End If
End Select
End With
Next ctl
'Set the forms recordsource equal to the new
'select statement.
Me.txtSQL = sSQL & sWhereClause
Me.RecordSource = sSQL & sWhereClause
Me.Requery
End Sub
Guarde o formulário e, em seguida, abra-o na vista Formulário.
Tenha em atenção que quando clica no botão de comando Procurar , a caixa de texto txtSQL reflete a consulta que foi criada a partir dos valores no formulário Clientes. Além disso, o formulário Clientes foi requerido para que reflita os resultados da nova cadeia de SQL.
Referências
Para obter mais informações sobre o método BuildCriteria, no Visual Basic Revisor, clique em Ajuda do Microsoft Visual Basic no menu Ajuda, escreva método buildcriteria no Assistente do Office ou no Assistente de Respostas e, em seguida, clique em Procurar para ver o tópico.
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