Buonasera, avrei bisogno di chiedere un consiglio riguardo al filtraggio di record.
In tabella
tblNominativi ho vari campi:
Cognome (testo breve),
Nome (testo breve),
Data Nascita (Data/Ora),......
Archiviato(Si/No).
Questi dati vengono rappresentati in una maschera
frmNominativi con visualizzazione a Maschere continue.
In questa maschera (oltre ai vari oggetti) ho una
textbox denominata
search_box la quale mi serve per poter digitare il Cognome o Nome da ricercare, presente in tabella.
Generalmente utilizzo il seguente codice:
Private Sub search_box_AfterUpdate()
'CASELLA DI TESTO CERCA
Dim s As String, r As String
Echo False
FilterOn = False
s = "[Cognome] Like %1 Or [Nome] Like %1" ---------------->Valorizzo stringa s col Cognome o Nome estratti dai relativi campi
r = Replace(s, "%1", Chr(34) & search_box & "*" & Chr(34)) ------> Valorizzo stringa r con una sostituzione della stinga s in base a ciò che ho digitato nella textbox
Filter = r -----> Filtra la maschera in base al valore di r
FilterOn = True ------>Applica il filtro e mostra dunque tutto ciò che è presente in tabella che inizia con quello che ho scritto in textbox
Echo True
search_box = ""
search_box.SetFocus
If Me.Recordset.RecordCount = 0 Then
MsgBox "Non esistono dati simili in elenco!!", vbCritical, "CONTROLLO CONTATTI"
FilterOn = False
End If
End Sub
La sub funziona e fa bene il suo lavoro. Adesso però ho un problema in quanto per ragioni di necessità ho bisogno di filtrare i record oltre che al Cognome o Nome ma anche in base al valore del campo Archiviato.
Cioè se ad esempio in tabella ho:
Id-------Cognome-------Nome-------Archiviato
1-------Tizio-------------Sempronio------No
2-------Giovanni--------Francesco-------Si
3-------Claudio---------Valerio------------Si
4-------Giorgio---------Vittorio------------Si
5-------Clarissa---------Ambra------------No
6-------Giosuè----------Daniele-----------No
e in textbox search_box digito
Gio, allora il filtro dovrà filtrare solo: Giovanni e Giorgio perché il campo
Archiviato è valorizzato a
True. Dovrà dunque estromettere Giosuè, proprio perché il suo record ha il campo
Archiviato su
False
Non so se si può lavorare su questa sub ampliandola oppure serve di qualcosa di diverso.
Grazie a tutti.