Newsgroup: it.comp.appl.access
Titolo: Problema con query su listbox e gruppo di opzioni..

Salve ancora a tutti,
sono le ore 0.20 ed ho qualche problemino con una query su listbox:
la listbox pesca regolarmente da una tabella anagrafica
con i campi: Cognome_nome , Indirizzo, Lavoro (e Idanagrafico che non è
visualizzato)
Allo stato attuale mi visualizza correntemente tutti i campi
ma vorrei che, una volta selezionata la debita opzione nel gruppo di opzioni
(chiamatoLavoro), la listbox mi visualizzasse solo i record selezionati in
base a quel determinato lavoro (sostanzialmente un filtro su una listbox).
Avevo pensato ad impostare la query della listbox con il criterio :
((Forms!Anagrafica.[Lavoro.value] = 1) = Professionista )
((Forms!Anagrafica.[Lavoro.value] = 2) = Impiegato ) etc...
Non mi da nessun risultato....(cosa che alle 0.35 dopo una giornata di
studio è un po' snervante, specie
perchè concettualmente mi pareva di aver imbroccato l'idea ossia :
applico una condizione WHERE alla query da dove attinge la listbox e quella
ci crede e mi fa vedere cosa voglio io...)
Dove sto sbagliando? O meglio: il mio errore è concettuale e non ho capito
il meccanismo di "filtraggio dati" o
è un problema squisitamente di carattere "sintattico" della query affinabile
attraverso pratica e pratica e tanti consigli come fino a ora ho ricevuto?
Ciao e grazie a chi avrà voglia di leggere sto msg....
Il Cugi....

 ha scritto nel messaggio
news:vx5v7.3949$pm2....@news1.tin.it...

In pratica nel criterio hai scritto:
((Forms!Anagrafica.[Lavoro.value] = 1) = Professionista )
che si traduce in 1=Professionista, quindi per fare quello che vuoi fare te
o usi la funzione predefinita Choose che puoi vedere sullo Help in linea di
access o metti una casella di testo sulla maschera che userai come criterio
e a secondo del risultato del gruppo di opzioni lo avvalori di conseguenza.
Es.:
Private sub Lavoro_AfterUpdate()
Select Case Me.Lavoro
    case 1
        Me.NomeCasellaDiTesto = "Professionista"
    case 2
        Me.NomeCasellaDiTesto = "Impiegato"
    case 3
        Me.NomeCasellaDiTesto = "Operaio"
     ...
    case N
end Select
end sub
Ciao Roberto - Syd


Ciao, forse non ho capito....
se effettivamente lui capisce che 1 = professionista dovrebbe depurarmi la
listbox di conseguenza cercando sulla tabella ed eseguendo la query in base
al criterio "professionista" o sbaglio?
Se č cosě allora avevo capito bene, perň non mi sembra che funga...
Cmq proverň sicuramente con le altre soluzioni , anche se questa mi sembrava
la piů pratica.
Grazie,
Il cugi...

 ha scritto nel messaggio
news:Gddv7.4298$pm2....@news1.tin.it...

[CUT]
Lui (chi è lui ?) capisce, (Logicamente parlando) che 1=Professionista è
un'espressione falsa quindi vale 0 (Zero), quindi è come se avessi scritto
nei criteri 0 (Zero).
Ciao Roberto - Syd


Lui è Access....
ok per la spiegazione , con la query basata sul valore della txtbox funziona
,
ma se volessi vederli tutti che valore dovrei attribuire alla txt ?
ho provato con  (esempio)
                          case 5
                          Me.NomeCasellaDiTesto = null
o
                            Me.NomeCasellaDiTesto = ""
in realtà mi restituisce una query vuota mentre vorrei che mi visualizzasse
tutti i possibili lavori.
(ovviamente ho fatto fare una requery alla mia listbox per ogni selezione
effettuata)
Ciao e grazie per i consigli,
Il cugi...

Mi sono ingegnato da solo...
probabilmente non è la miglior soluzione possibile ma funge, se qualcuna ha
altre idee che mi diano una mano a capire sono ben acette...
Ho risolto il tutto inserendo una seconda txtbox che fungesse in sincronia
con la prima:
txt1 = Professionisti (è il valore)
txt2 = Professionisti
txt1 = Impiegati
txt2 = Impiegati
in caso li voglia selezionare tutti
txt1 = Impiegati
txt2 = Professionisti
e la query la esegue con OR.
Ovviamente la solution funge per un numero esiguo di valori su cui poter
switchare....
Ora il mio problema è trovare la regola generale che valga per un numero ben
+ elevato di valori (uno non può inserire 200 txtbox su una maschera...)
Ciao
Il Cugi da casa che pensa....


Cambia il criterio della query da cosě:
Form![NomeForm]![txt1]
a cosě:
Like Form![NomeForm]![txt1]
e quando li vuoi vedere tutti in txt1 devi mettere un asterisco *
Ciao Roberto - Syd