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

access_search_form_11

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.

access_search_form_12

Quando la selezione è fatta, fare clic su Toggle Filter

access_search_form_13

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.

Query1
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

access_search_form

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ì

access_search_form_04

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.

access_search_form_05

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.