Questo tutorial di accesso spiega come creare un modulo di ricerca con più criteri.
Potresti anche voler leggere:
Access DoCmd.Metodo OpenForm per aprire il modulo di accesso
Il valore della casella combinata di accesso dipende da un’altra casella combinata
Restituisce l’input del modulo di accesso per accedere al report o al modulo o alla query
Accesso crea un modulo di ricerca con più criteri
A volte è necessario creare un modulo di ricerca in La soluzione più semplice è filtrare direttamente i dati per ogni campo come usare il filtro automatico in Excel, ma questo non è affatto elegante.
Access fornisce una funzione Form chiamata Filter by Form che è molto facile da usare.
Seleziona una tabella /Query > Crea > Modulo > Applica filtro / Ordina
Ora è possibile selezionare più criteri, è anche possibile selezionare un valore dalla casella a discesa. Tuttavia quei valori delle caselle a discesa sono indipendenti l’uno dall’altro.
È inoltre possibile utilizzare i criteri Or facendo clic sulla scheda Or.
Quando la selezione è fatta, fare clic su Toggle Filter
Un modo migliore per fare il filtraggio è per gli utenti di scegliere tra caselle a discesa dipendenti.
Ad esempio, nella prima casella a discesa, gli utenti scelgono reparto A, e poi nella seconda casella a discesa, gli utenti possono visualizzare un elenco di persona del reparto A.
Questo articolo vi mostrerà come fare tale filtraggio.
Crea un modulo di risultato
Supponiamo di avere una query come di seguito. Il nostro obiettivo è quello di consentire agli utenti di selezionare reparto per mostrare le informazioni dei dipendenti, o selezionare reparto + ID dipendente.
Creeremo un “modulo di risultato” che mostra il risultato della ricerca.
Dipartimento | ID Dipendente | Lavoro Data | Stipendio | Indennità di |
---|---|---|---|---|
Account | 1 | 1/1/2000 | 10000 | 100 |
Admin | 2 | 1/1/2001 | 20000 | 200 |
Admin | 3 | 1/1/2002 | 30000 | 300 |
Admin | 4 | 1/1/2003 | 40000 | 400 |
libro paga | 5 | 1/1/2004 | 50000 | 500 |
HR | 6 | 1/1/2005 | 60000 | 600 |
fare Clic sulla Query e sotto la scheda Crea, selezionare Più Moduli > DataSheet
Ora salvare il Modulo come result_frm. Nel caso in cui si modifichino accidentalmente i dati dei risultati, è necessario modificare la proprietà Bloccata di ogni casella di testo su Sì
In questo esempio, voglio restituire tutti i campi di Query1 nella forma del risultato. Scelgo il foglio dati perché ogni record può essere visualizzato in una riga con barra di scorrimento orizzontale. Non preferisco usare la forma continua o la forma singola perché ogni record viene visualizzato in più righe.
Crea un modulo di ricerca
Crea un modulo vuoto e quindi aggiungi due caselle combinate (Combo_Dept, Combo_EmpID) e un pulsante (search_btn) come mostrato di seguito.
1) Fare clic su Combo_Dept, nella proprietà Row Source, digitare
SELECT DISTINCT Department FROM Query1;
Row Source è ciò che è possibile selezionare nella casella combinata.
2) fare Clic su Combo_EmpID, nella proprietà Origine Riga, tipo
SELECT FROM Query1 WHERE =!!;
3) Selezionare Combo_Dept, selezionare Evento Dopo l’Aggiornamento e costruire la seguente Procedura
Private Sub Combo_Dept_AfterUpdate() Me.Combo_EmpID = Null Me.Combo_EmpID.RequeryEnd Sub
selezione di un Dipartimento, Combo_EmpID viene reimpostato a Null e quindi eseguire nuovamente la query
4) Fare Clic destro sul search_btn e quindi scegliere genera Evento
Private Sub search_btn_Click() If IsNull(Me.Combo_EmpID) Then searchCriteria = "='" & Me.Combo_Dept & "'" searchSQL = "Select * FROM Query1 where " & searchCriteria Else searchCriteria = "='" & Me.Combo_Dept & "' AND =" & Me.Combo_EmpID searchSQL = "Select * FROM Query1 where " & searchCriteria End If DoCmd.OpenForm "result_frm", 3, searchSQLEnd Sub
Ora è stato creato un semplice Form di ricerca. Dopo aver selezionato i criteri nel modulo di ricerca, una volta che si fa clic sul pulsante Cerca, il Modulo risultato apparirà e visualizza il risultato.