Come compilare una query dinamica con valori da un modulo di ricerca in Access
Avanzate: richiede competenze esperte di codifica, interoperabilità e multiutente.
Le informazioni in questo articolo si applicano ai file di database di Microsoft Access con estensione .mdb oppure .accdb e ai file di progetto di Microsoft Access con estensione .adp.
Riepilogo
Questo articolo illustra come compilare dinamicamente criteri per una stringa di query con valori da un modulo di ricerca in Microsoft Access.
Ulteriori informazioni
In alcuni casi, è possibile creare un modulo che funge da modulo di ricerca. Si vuole essere in grado di immettere valori nel modulo e compilare dinamicamente la stringa SQL appropriata. La procedura seguente illustra come compilare dinamicamente una stringa di query che usa il metodo BuildCriteria.
Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. I tecnici del supporto tecnico Microsoft possono spiegare le funzionalità di una particolare procedura, ma non modificheranno questi esempi per fornire funzionalità aggiuntive o procedure di costruzione per soddisfare i requisiti specifici. ATTENZIONE: se si segue la procedura descritta in questo esempio, modificare il database di esempio Northwind.mdb. È possibile eseguire il backup del file Northwind.mdb e seguire questa procedura in una copia del database.
Esempio dettagliato
- Avviare Access.
- Scegliere Database di esempio dal menu ? e quindi fare clic su Database di esempio Northwind.
- Aprire la maschera Clienti in visualizzazione Struttura.
- Aggiungere un pulsante di comando e una casella di testo al modulo e quindi impostare le proprietà seguenti:
Command Button
------------------------
Name: cmdSearch
Caption: Search
OnClick: Event Procedure
Text Box
--------------
Name: txtSQL
Width: 4.4583"
Height: 1.25"
- Impostare la proprietà OnClick del pulsante di comando sulla routine evento seguente:
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
Salvare la maschera e aprirla in visualizzazione Maschera.
Si noti che quando si fa clic sul pulsante di comando Cerca , la casella di testo txtSQL riflette la query creata dai valori nel modulo Clienti. Inoltre, il modulo Clienti è stato ricreato in modo che rifletta i risultati della nuova stringa SQL.
Riferimenti
Per altre informazioni sul metodo BuildCriteria, nel Editor di Visual Basic fare clic su Guida di Microsoft Visual Basic nel menu ?, digitare il metodo buildcriteria nell'Assistente di Office o nella Creazione guidata risposte e quindi fare clic su Cerca per visualizzare l'argomento.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per