Newsgroup: it.comp.appl.access
Titolo: Ricerca

Ho creato una maschera contenente un casella combinata collegata ad una
tabella.Seguendo le istuzioni di un manuale non mi da lo stesso risultato
esemplificato nel libro. Infatti dalla casella combinata selezionando un
record contenuto nella tabella anzichè aprirmi la query con solo i record
selezionati nella c.c mi da tutti i record. Come faccio a  farla funzionare
bene. Io adopero questo procedimento,dove sbaglio.
Creo una query di selezione. Creo una maschera,una cas.comb con
l'autocompos,gli indico dove è la tabella in cui cercare i record, poi nella
masch creo un puls di comando a cui gli assegno l'apertura della query. Chi
mi può aiutare?

 masch creo un puls di comando a cui gli assegno l'apertura della query.
Chi
La query deve avere un criterio scritto in questo modo
like nz([forms]![tuaform]![tuacombo];"*")
Antonio

 ha scritto nel messaggio
news:CnM19.20528$n04.5...@twister2.libero.it...

 scusa la mia ignoranza, ho inserito nei criteri della query sul campo
interessato like nz([Maschera1]![Maschera1]![Cognome];"*") in cui "Maschera1
č il nome assegnato alla maschera in cui č presente la cas.comb e ognome e
il nome elemento nella cas.combinata. Ho fatto cosi ma non va. Dove sbaglio?
Grazie anticipatamente. Fabry.

 il nome elemento nella cas.combinata. Ho fatto cosi ma non va. Dove
sbaglio?
Lo vedi che c'è scritto qui?
like nz([forms]![tuaform]![tuacombo];"*")
e qui invece che c'è scritto?
like nz([Maschera1]![Maschera1]![Cognome];"*")
Ti sembra la stessa cosa?
Antonio

 ha scritto nel messaggio
news:xwN19.21449$lu5.5...@twister1.libero.it...

Scusa ma sto andando in tilt! Proprio non ci arrivo. Se inserisco like
nz([forms]![tuaform]![tuacombo];"*")
nei criteri del campo Cognome della query, quadno avvio la maschera e
seleziono il cognome sulla quale eseguire la query mi propone una maschera
dove devo inserire digitando il cognome. Il mio obiettivo e quando seleziono
nella casella combinata il cognome da ricercare tramite il pulsante che mi
avvia la query,essa mi deve restituire il valore selezionato nella cas.comb.
Inserendo like nz([forms]![tuaform]![tuacombo];"*") tale e quale non funge.
Ti prego illuminami,sono distrutto! Forse devo cambiare tuaform co nome
della mia maschera? lo stesso x tuacombo devo mettere il nome della casella
combinata?

 ha scritto nel messaggio
news:g9O19.21577$lu5.5...@twister1.libero.it...

CERTO CHE Sì!!!
Ma forms deve rimanere fisso, perchè è una parola riservata!
Tu c'avevi messo Maschera1!!!
Antonio

 ha scritto nel messaggio
news:7kP19.21173$n04.6...@twister2.libero.it...

Perfetto! like nz([forms]![Maschera1]![CasellaCombinata0];"*")  questa è
l'istruzione che ho inserito nei criteri della query del campo Cognome.
Selezionando un cognome nella cas.comb (nomelemento casellacombinata0) e
facendo eseguire la query mi da un elenco vuoto! Se metto una virgola prima
di casellacombinata0 nella formula mi restituisce tutti i valori!!!!! Il
procedimento è giusto, xkè è uguale a quello illustrato nel manuale.  Non
capisco, forse devo assegnare qualcosa a qualke pulsante o altro?

 capisco, forse devo assegnare qualcosa a qualke pulsante o altro?
Dopo aver scritto il valore fai invio per salvare il valore stesso nel
controllo?
la maschera si chiama maschera1?
l'espressione la metti sotto il campo cognome?
Posta la stringa SQL della query
Antonio

 Certo! Ho messo tutto al posto giusto ecco la striga sql della query
SELECT Anagrafica.CodiceScheda, Anagrafica.Cognome, Anagrafica.Nome,
Anagrafica.DataNasc, Anagrafica.CodFisc, Anagrafica.ComuneNasc,
Anagrafica.PrNasc, Anagrafica.Indirizzo, Anagrafica.ComuneResid,
Anagrafica.PrResid, Anagrafica.Telefono, Anagrafica.Status
FROM Anagrafica
WHERE (((Anagrafica.Cognome) Like
nz([forms]![Maschera1]![CasellaCombinata0];"*")));

 nz([forms]![Maschera1]![CasellaCombinata0];"*")));
Questa query come la usi poi?
Cosě deve funzionare!!!
Antonio

Quindi la query è ok!
Il resto è cosi:
Ho creato una semplicissima maschera,salvata con maschera1, nella quale con
l'autocomposizione ho creato una casella combinata, nei passaggi non cè da
sbagliare, con origine dati da visualizzare nella cas.comb in cognome.
Dopodichè ho creato un pulsante che esegue la query. Ora ti chiedo:
una volta che seleziono il cognome nella cas.comb devo farsì che questo
venga salvato? Se si come devo procedere?

 nz([forms]![Maschera1]![CasellaCombinata0];"*")));
Non
WHERE (((Anagrafica.Cognome) Like
nz([forms]![Maschera1]![CasellaCombinata0];"*")));
ma
WHERE (((Anagrafica.Cognome) Like
nz([forms]![Maschera1]![CasellaCombinata0],"*")));
Se in SQL usi come separatore il punto e virgola invece della virgola, ti
verrà segnalato un errore formale.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Si, Roberto ho fatto un copia incolla e l'ultima parte non l'avevo
selezionata cosi l'ho scritta a mano, ma ti assicuro che  è così, lo
verificata ora.
Io credo che il problema sia nella maschera,forse devo assegnare qualcosa
alla cas.comb, Antonio ha detto che una volta fatta la selezione nella
cas.comb, questa va salvata. Si ma come,nelle proprieta della cas.comb?

 venga salvato? Se si come devo procedere?
Mi sono spiegato male.
Intendevo dire che, finche non avviene l'evento dopo aggiornamento del
controllo, cosa che avviene quando si passa con un tab e un invio su un
altro controllo della form, il valore inserito non viene "sentito" dal
controllo, cioè se testi la proprietà value, non è ancora quello che hai
scritto, ma il valore precedente!
E' per questo che c'è anche la proprietà text del controllo, che ti da il
valore che è scritto nel controllo, ma ancora non salvato.
Per un problema di ordine di eventi che avevo segnalato anch'io qualche
tempo fa, se tu, dopo aver scritto il valore nella casella, invece di fare
invio o tab, clicchi direttamente il pulsante, lui valuta prima il clic
(eseguendo la query) e solo dopo fa l'aggiornamento del controllo.
Allora fai queste prove:
spostati dal controllo con tab, dopo usa il pulsante
oppure, clicca sul pulsante e dopo la query, la chiudi, e poi riclicchi.
oppure, prima del lancio della query, nel pulsante fai una msgbox del valore
della combo per vedere che ti restituisce...
Se è questo il problema, ti dico come ovviare...
Antonio

 ha scritto nel messaggio
news:VF529.24528$n04.6...@twister2.libero.it...

Ciao Antonio,
Ho fatto quello che mi hai chiesto, ma niente mi restituisce una query
vuota,
se eseguo la query senza passare x la maschera mi visualizza una inputbox se
inserisco il cognome e clicco su ok mi da il risultato giusto.
Se nei criteri sotto il campo cognome non metto la stringa like nz... dalla
cas.comb. mi restituisce tutti i valori a prescindere dalla selezione!
A dire che è una cosa semplicissima ma mi sta facendo dannare!
Hai altre considerazioni? Pensi che ci sia un rimedio?

 Hai altre considerazioni? Pensi che ci sia un rimedio?
Hai messo la msgbox nel clic del pulsante prima di lanciare la query per
vedere il valore della combo?
Antonio

 ha scritto nel messaggio
news:lC629.24716$n04.6...@twister2.libero.it...

Mi dici come deo procedere per mettere questa finestramessaggio?
nelle proprietà del pulsante su clic? Li ho una routin evento! La posso
inserire li?
questa e laroutine che ho:
Private Sub Comando2_Click()
On Error GoTo Err_Comando2_Click
    Dim stDocName As String
    stDocName = "anagrafica Query"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Comando2_Click:
    Exit Sub
Err_Comando2_Click:
    MsgBox Err.Description
    Resume Exit_Comando2_Click
Come devo inserirla?

     Resume Exit_Comando2_Click
Antonio

 Ok, fatto e mi restituisce il valore dell'id !!!!

 > Ok, fatto e mi restituisce il valore dell'id !!!!
Ma vafangule...
Scusa eh :-P
Quindi la combo c'ha due colonne, l'id, nascosto, ma associato e il cognome,
visibile.
Il riferimento alla combo ti restituisce la colonna associata, quindi l'id
non il cognome!
E allora nella query non devi mettere il criterio sotto il cognome, ma sotto
l'ID !!!!!
Nota:
Se nella query devi per forza usare il cognome (a quel punto allora neanche
nelal combo serviva l'id, comunque...), siccome la query non vede la
column(1) (studia la proprietā column di una combo) che ti darebbe il valore
cognome, devi usare uno sporco trucco.
Controllo non visibile nella maschera, chiamato cognome_nascosto. Su evento
dopo aggiornamento della combo scrivi
cognome_nascosto = combo.column(1)
Poi nella query il criterio sarā il controllo cognome_nascosto e non pių la
combo
Antonio


Ok, ho semplicemente messo il criterio sotto l'ID e funge benissimo. Vedi ci
voleva tanto!  :-P
Ti ringrazio per l'aiuto, ma ti porre un'altra domanda ma forse e meglio un
nuovo post? Io la faccio:
ho una maschera pop-up che devo sincronizzare con la maschera principale, in
access97 utilizzavo questo codice:
Private Sub Form_Current()
If IsOpen("ElencoMappali") Then
Forms!ElencoMappali.filter="Codicescehda="&_Nz(CodiceScheda,0)
End Sub
ma in access2000 mi dice che l'operatore IsOpen non e corretto! Mi puoi dare
una dritta?

 una dritta?
Primo:
perchè non metti un comando su apertura della scheda mappali che si prende
il valore del codice dalla form principale invece di tirarcelo dentro
dovendo testare prima se la maschera è aperta?
Secondo:
c'era una funzione nel northwind che mi pare si chiamasse caricata che
testava se una maschera era aperta (era un test sull'insieme forms con
gestione dell'errore)
Antonio