Emanuele Lana

Skip to content
  • Chi sono
  • Formazione
  • Consulenza
  • Contatti
  • Corsi

Filtrare record in Microsoft Access

20/08/2016 Microsoft Access Video tutorial

Filtrare in Microsoft Access

Filtrare record in Microsoft Access è la tipica attività che si svolge con un database. Se costruiamo l’interfaccia ai nostri dati e vogliamo davvero aiutare l’utente, è bene dedicare il tempo necessario.

Abbiamo visto diversi video che utilizzano la casella combinata per filtrare i record di una maschera.

Oggi impariamo a usare una casella di testo e una casella di riepilogo per filtrare i record: mano mano che digitiamo caratteri nella casella di testo, automaticamente cambia l’origine riga della casella di riepilogo. Dalla casella di riepilogo possiamo facilmente filtrare i record presenti sulla maschera cliccando sul valore desiderato.

La soluzione richiede pochi elementi:

– una tabella con i clienti

tabellaclienti

– una maschera con una casella di testo, una casella di riepilogo e i controlli nel corpo per visualizzare i dati

mascheraricerca

 

Nota che la casella di riepilogo non ha origine riga impostata. E’ impostato solo il numero di colonne = 2 e la larghezza colonne: 0 (in tal modo nasconderemo la prima colonna e lasceremo visibile solo la seconda).

Ora dobbiamo scrivere il codice. Come sempre, poche righe, che possiamo imparare tutti!

Seleziono la casella di testo e vado sulle proprietà, tab Eventi.

Scelgo l’evento Su tasto su. Ci clicco dentro e poi tasto destro e dal menu scelgo Genera… e dalla finestra che si apre scelgo Generatore di codice.

generatorecodice

Ora che siamo nel codice vogliamo che quando si scatena l’evento su tasto su, venga eseguita una nostra procedura chiamata sRicerca:

Private Sub txtCliente_KeyUp(KeyCode As Integer, Shift As Integer)
   sRicerca
End Sub

Dopo la riga End Sub digitiamo il seguente codice per iniziare la nostra procedura:

Sub sRicerca()

poi premiamo il tasto invio e dovremmo ottenere questo:

Sub sRicerca()

End Sub

bene. Qui dopo l’intestazione, ossia dopo la riga Sub e prima della riga End, scriviamo l’istruzione che aggiorna l’origine riga della casella di riepilogo in base a quello che abbiamo digitato nella casella di testo:

Me.lstElencoClienti.RowSource = "SELECT ID, Company FROM tblClienti WHERE Company Like ""*" & Me.txtCliente.Text & "*"""

Attenzione! l’istruzione precedente va scritta tutta su una sola riga.

Non rimane che impostare il filtro quando si fa clic sulla casella di riepilogo. Aggiungiamo un evento su clic per la casella di riepilogo. Per questo selezioniamo la casella di riepilogo e poi nelle proprietà, tab Eventi cerchiamo Su clic. Ci posizioniamo sulla riga, poi clic con il tasto destro e nella finestra che si apre scegliamo, come già visto sopra, Generatore di codice.

Servono solo due istruzioni. Con la prima impostiamo il filtro:

Me.Filter = "ID=" & Me.lstElencoClienti

ossia vogliamo filtrare solo i record il cui ID è uguale a quello della casella di riepilogo (su cui abbiamo appena fatto clic)

e poi attiviamo il filtro:

Me.FilterOn = True

Il codice completo è il seguente:

Private Sub lstElencoClienti_Click()
Me.Filter = "ID=" & Me.lstElencoClienti
Me.FilterOn = True
End Sub
Private Sub txtCliente_KeyUp(KeyCode As Integer, Shift As Integer)
sRicerca
End Sub
Sub sRicerca()
Me.lstElencoClienti.RowSource = "SELECT ID, Company FROM tblClienti WHERE Company Like ""*" & Me.txtCliente.Text & "*"""
End Sub

Considera che se la tabella clienti contiene migliaia di righe, potremmo sperimentare un certo ritardo quando digitiamo le lettere nella casella di testo, perché a ogni tasto premuto viene eseguito il codice che imposta l’origine riga.

casella di riepilogocasella di testocodicefiltroorigine rigaproceduraVBA

Argomenti correlati

Dove scaricare dati di prova

Dove scaricare dati di prova è un problema all’ordine del giorno per chi insegna o per chi vuole esercitarsi con nuove procedure. Non possiamo inventarci nomi e cognomi, indirizzi ecc.. Solitamente ricorro a database di esempio, il classico gestionale degli ordini Northwind, fornito con l’installazione di Microsoft Access. Se non lo trovi nel pc, puoi comunque […]

Come sostituire la finestra di dialogo MsgBox in Microsoft Access

Per interagire con l’utente lo sviluppatore utilizza molto spesso la funzione MsgBox con cui apre una finestra di dialogo e visualizza i pulsanti Ok / Annulla, Sì / No. In base poi al pulsante scelto, viene eseguito il codice. E’ possibile sostituire questa finestra di dialogo standard e crearne un’altra altamente personalizzata.

Filtrare record in Microsoft Access

E’ possibile filtrare i record di una maschera in molti modi. Questa volta impariamo a usare la casella di testo e la casella di riepilogo: mano mano che digito caratteri nella casella di testo, viene filtrata la casella di riepilogo. Quando vedo il valore ricercato, basta cliccare e filtrerò i record della maschera.

Nel 1994 è iniziato il mio percorso di consulenza e formazione in ambito IT. La gestione del dato è al centro dei miei interessi.
Nel mio lavoro di consulenza assisto il cliente nella progettazione del modello logico dei dati e implemento le soluzioni di interfaccia.

Tag

best practice casella combinata casella di testo Cerca.Vert ciclo controllo corso di formazione dopo aggiornamento Evento Excel funzione funzioni giorno.settimana macro Microsoft Access MsgBox Outlook pivot Powerpivot progettazione query raggruppamento SE SQL su clic testo in colonne trimestre tutorial unione VBA

Articoli recenti

  • Caratteri disponibili nella casella di testo in Microsoft Access 11/03/2024
  • Come controllare l’inserimento dati 2 di 2 24/09/2023
  • Come controllare l’inserimento dati 1 di 2 10/09/2023
  • Come controllare l’inserimento dati 27/08/2023

Info

  • Chi sono
  • Formazione
  • Consulenza
  • Contatti
  • Corsi

Categorie Blog

  • Comunicazione (5)
  • Microsoft Access (51)
  • Microsoft Excel (25)
  • Video tutorial (47)

Cerca

Teniamoci in contatto

Cookie policy | illustrazioni di Elisa Patrissi, realizzato da Brixel