Newsgroup: it.comp.appl.access
Titolo: Come creare un controllo di ricerca

rieccomi .... :-(
ho letto la faq sul Sito Comune , la numero 3.114 , io però devo poter
cercare in più campi, ( es. pippo , pluto ,paperino ) non ci
riesco...... qualcuno ha un minuto (o più) da dedicarmi ?
Sotto il codice della faq.
Private Sub txtRicerca_Change()
Dim strR As String
Dim strSQL As String
strR = Me!txtRicerca.Text
If Not IsNull(Me!txtRicerca.Text) Then
    strSQL = "SELECT ID, Nominativi " & _
    "FROM [Archivio nominativi] " & _
    "WHERE (Nominativi Like " & Chr$(34) & "*" & _
    strR & "*" & Chr$(34) & ");"
    Me!ElencoNominativi.RowSource = strSQL
    Me!ElencoNominativi.Requery
    Me!txtRicerca = strR
    Me!txtRicerca.SetFocus
    Me!txtRicerca.SelStart = 255
End If
End Sub
GRAZIE a tutti

 ha scritto nel messaggio 
news:1189080176.8...@57g2000hsv.googlegroups.com...


GRAZIE a tutti
[risposta]
Potresti gestire l'evento "su uscita" di ogni casella di testo, da 
utilizzare per la ricerca, inserendoci il codice che verifica se la casella 
è piena; in caso affermativo verifica se c'è già un filtro applicato o no;
es. (valori numerici)
If Not IsNull(Me!nomeCasellaTesto) Then
    Me.FilterOn = False
    If Me.Filter = "" Then
        Me.Filter = "[nomeCampo] = " & Me!nomeCasellaTesto
    Else
        Me.Filter = "[nomeCampo] = " & Me!nomeCasellaTesto & " And " & 
Me.Filter
    End If
    Me.FilterOn = True
End If
es. (valori testuali)
If Not IsNull(Me!nomeCasellaTesto) Then
    Me.FilterOn = False
    If Me.Filter = "" Then
        Me.Filter = "[nomeCampo] = " & Chr$(34) & Me!nomeCasellaTesto & 
Chr$(34)
    Else
        Me.Filter = "[nomeCampo] = " & Chr$(34) & Me!nomeCasellaTesto & 
Chr$(34) & " And " & Me.Filter
    End If
    Me.FilterOn = True
End If
Per rimuovere il filtro crei un bottone che azzera la Filter e imposta il 
FilterOn a False:
Me.FilterOn = False
Me.Filter = ""
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:1189080176.8...@57g2000hsv.googlegroups.com...

Okkey ...
ho risolto così --
Private Sub txtRicerca_Change()
    Dim strR As String
    Dim strSQL As String
    strR = Me!TxtRicerca.Text
    If Not IsNull(Me!TxtRicerca.Text) Then
    strSQL = "SELECT Campo1, Campo2, Campo4 ,Campo5 " & _
    "FROM [listino] " & _
    "where (Campo1  Like " & Chr$(34) & "*" & _
    strR & "*" & Chr$(34) & " Or Campo2 Like " & Chr$(34) & "*" & _
    strR & "*" & Chr$(34) & " Or Campo4 Like " & Chr$(34) & "*" & _
    strR & "*" & Chr$(34) & ");"
    Me!Elenconominativi.RowSource = strSQL
    Me!Elenconominativi.Requery
    Me!TxtRicerca = strR
    Me!TxtRicerca.SetFocus
    Me!TxtRicerca.SelStart = 255
    End If
End Sub
Però ....................
in questo modo mi trova solo le parole se sono in ordine... cioè
(es.nel campo1 RICERCA nel campo2 GLOBALE campo4 DISORDINATA )
se cerco RICERCA o GLOBALE o DISORDINATA, non ci sono problemi,
funziona anche se cerco BALE DISORDINATA...... ok??
Però se cerco CERCA ORDINATA non mi da nessun risultato ???
é chiaro ?
Come posso fare ??? Avete la soluzione ?
Grazie 1000...
Ciao

 ha scritto nel messaggio 
news:1189527434.7...@22g2000hsm.googlegroups.com...

[risposta]
E' inutile che crei una condizione Where per dei campi che non contengono 
nulla; dovresti, prima, verificare se la casella di testo relativa contiene 
qualcosa e poi creare la condizione...
Ciao.
-- 
Sergio MAZZA