Newsgroup: it.comp.appl.access
Titolo: filtro su listbox

vorrei applicare dei filtri ad una listbox da una form diversa da quella
della listbox stessa, senza perdere l'ordinamento della listbox (che viene
defito da dei pulsanti presenti nella form stessa).
tutti questi controlli li vorrei impostare con istruzioni SQL, applicate con
listbox.rowsource = [espressione]
- l'origine dei dati della listbox l'ho definita con una SELECT sulla
tabella origine (sintassi memorizzata in una variabile fissa)
- l'ordinamento funziona in questo modo: quando faccio clic sul pulsante di
ordinamento, aggiungo alla SELECT le istruzioni di ORDER BY necessarie e
rieseguo la listbox.rowsource = [espressione]
- per applicare i filtri vorrei memorizzare i parametri passati (da un'altra
form) in moda da accordarli all'istruzione SQL con l'opportuna istruzione
WHERE
sempre che sia sia capito tutto, la domanda č: posso memorizzare, dalla form
coi filtri, i parametri passati in una variabile contenuta nella form della
listbox, in modo che se dopo aver filtrato i record cambiando l'ordinamento
non perda i filtri???
se qualcuno ci capisce e vuole aiutarmi posso postare anche un po' del
codice fatto finora...
grazie!

"Cholo" <m.mag...@NOSPAMlibero.it> ha scritto nel messaggio
news:H3hwd.29592$Zk.5...@twister2.libero.it...

Quando pigi i pulsanti di ordinamento costruisciti dinamicamente la stringa
SQL, che alla fine imposterai come origine riga della casella di riepilogo,
tenendo conto, oltre che dell' ORDER BY, anche dei criteri da impostare con
una WHERE; naturalmente do per scontato che anche l'altra maschera (quella
con i parametri di filtro) risulti aperta.
Insomma creati la stringa SQL pezzo a pezzo ed alla fine impostala come
origine riga della casella di riepilogo.
-- 
Roberto
------------------------------------------------
il Sito Comune di it.comp.appl.access
www.sitocomune.com
-----------------------------------------------

 origine riga della casella di riepilogo.
è quello che ho fatto... e in effetti funziona.
quello che vorrei sapere è se la stringa di impostazione dei filtri (where)
posso memorizzarla in una variabile globale (??) o appartenente alla
maschera dove c'è la listbox, in modo che quando cambio ordinamento (e
rieseguo la select) non perdo i filtri. per adesso lo ho memorizzato in un
campo di testo nascosto (Forms!Principale!Dati.Form!Filtri ), ma volevo
sapere se potevo usare una variabile di vb.
posto il codice di impostazione dei filtri per farmi capire:
Private Sub Ricerca_Click()
Dim Fil As String
Dim Primo As Boolean
Primo = True
Sel = "SELECT Cod, Via, Localita, Tipo, Categoria, Anno FROM Anagrafica"
Fil = ""
If via <> "" Then
    If Primo Then
        Fil = Fil & " WHERE"
        Primo = False
        Else
        Fil = Fil & " AND"
    End If
    Fil = Fil & " Via LIKE '" & via & "'"
End If
If localita <> "" Then
    If Primo Then
        Fil = Fil & " WHERE"
        Primo = False
        Else
        Fil = Fil & " AND"
    End If
    Fil = Fil & " Localita LIKE '" & localita & "'"
End If
If Anno <> "" Then
    If Primo Then
        Fil = Fil & " WHERE"
        Primo = False
        Else
        Fil = Fil & " AND"
    End If
    Fil = Fil & " Anno LIKE '" & Anno & "'"
End If
Ord = " ORDER BY Via"
SQL = Sel & Fil & Ord & ";"
Forms!Principale!Dati.Form!List.RowSource = SQL
Forms!Principale!Dati.Form!Filtri = Fil
End Sub

 sapere se potevo usare una variabile di vb.
Puoi memorizzare il codice SQL della WHERE in una variabile pubblica di tipo
testo definita in un modulo del tuo database: così facendo essa sarà
modificabile e accessibile da qualsiasi punto del tuo database e quindi
eviterai di definire la casella di testo nascosta chiamata Fil.
[CUT]
