Newsgroup: it.comp.appl.access
Titolo: passare valore da casella di riepilogo presente in maschera esterna

Salve a tutti.
In una maschera d'inserimento (protocollo) Vorrei ricercare il codice
anagrafico non attraverso una casella combinata, ma selezionando il
valore da una maschera esterna. Ho creato, quindi, una maschera di
ricerca con una casella combinata non associata con 4 valori
predefiniti. A seconda della scelta effettuata mi rende attiva la
casella di testo anch'essa non associata nei quali digito i valori da
ricercare. Poi ho una casella di riepilogo che man mano che digito i
valori nella casella di testo mi riduce l'elenco in base alla
corrispondenza dei dati. Fin qui tutto ok.
Ora vorrei che il valore della casella di riepilogo che seleziono o
facendo doppio click o confermandolo con un pulsante restituisse il
valore alla maschera di inserimento.
Ho provato a mettere su doppio click nella casella CodAnagr della
maschera frmProtocollo il seguente codice:
DoCmd.OpenForm "RicercaAnagrafica", acNormal, "", "", , acNormal
Me!CodAnagr = Forms!RicercaAnagrafica!Elenconominativi
Cosa non funziona?
Grazie.


se la maschera di inserimento è gia aperta ti basta passare il valore in 
questo modo:
forms!MascheraInserimento.CodAnagr = 
Forms!RicercaAnagrafica!Elenconominativi
se invece la maschera Inserimento e chiusa puoi passargli il valore con 
"OpenArgs" del metodo docmd.openform:
DoCmd.OpenForm "RicercaAnagrafica", acNormal, "", "", , acNormal, 
me.Elenconominativi
e su evento load della maschera di inserimento scrivi:
me.CodAnagr = me.openargs
-- 
Ciao
Geppo 


la maschera di ricerca si apre quando non conoscendo il codice a
memoria clicco due volte sul campo CodAnagr e la maschera resta
aperta. Ho inserito quindi su doppio click
DoCmd.OpenForm "RicercaAnagrafica", acNormal, "", "", , acNormal
Forms!frmProtocollo.CodAnagr = Forms!RicercaAnagrafica!
Elenconominativi
ma il valore non viene inserito.
Ho provato anche così: dato che la maschera di ricerca ha origine
dalla tabella anagrafica ho inserito il campo ID che varia in base al
valore selezionato nella casella di riepilogo  e ho provato su evento
doppio click della casella di testo CodAnagr della maschera di
inserimento a scrivere:
DoCmd.OpenForm "RicercaAnagrafica", acNormal, "", "", , acNormal
Me!CodAnagr = Forms!RicercaAnagrafica!ID
e mi restituisce il primo valore della maschera e non quello
selezionato.
Forse non ho capito bene dove inserire il tuo codice. Grazie Geppo.

On 21 Mag, 12:00, "Geppo" <c...@tin.it.invalid> wrote:

Scusa ho inserito il tuo codice sull'evento doppio click della casella
di riepilogo della maschera di ricerca e mi ha passato il giusto
valore.
Siccome questa maschera di ricerca la utilizzerò anche per altre
maschere di inserimento pressuppongo che bisogna integrare il codice
così:
forms!frmProtocollo.CodAnagr = Forms!RicercaAnagrafica!
Elenconominativi
forms!frmMandati.CodAnagr = Forms!RicercaAnagrafica!Elenconominativi
ma ovviamente mi passerà il valore solo alla maschera di inserimento
aperta. E' così o è una procedura sbagliata?
Ciao.

 aperta. E' così o è una procedura sbagliata?
Puoi fare in questo modo su doppio click della textbox CodAnagr scrivi:
DoCmd.OpenForm "RicercaAnagrafica", , , , , , Me.Name
In questo modo passi il nome della form tramite la proprietà OpenArgs del 
metodo docmd.openform
pertanto nella form "RicercaAnagrafica" che vai ad aprire avrai nella 
proprietà OpenArgs il nome della form chiamante:
forms(me.openargs).CodAnagr = Forms!RicercaAnagrafica!Elenconominativi
-- 
Ciao
Geppo

On 21 Mag, 12:00, "Geppo" <c...@tin.it.invalid> wrote:

Ho provato a inserire più di un comando sull'evento doppio click del
valore selezionato nella casella di riepilogo ma se la form indicata
nella prima riga è chiusa non passa alla seconda e così via ma mi dice
impossibile trovare la form a cui si fa riferimento nel codice visual
basic.
Come posso fare? Grazie.

 Come posso fare? Grazie.
Tio ho già risposto nel post delle 13.20
-- 
Ciao
Geppo 


Ok scusa non l'avevo vista. Ora funziona. Grazie.
In alternativa al doppio click ho pensato di far aprire la maschera di
ricerca con l'autokeys e nello specifico F2.
Solo che così non gli passa il nome della form chiamante. Inoltre
nella macro autokeys ho inserito altri tasti funzione con le relative
maschere da aprire. Quando, sono sulla casella CodAnagr deve essere
abilitato solo il tasto funzione F2 e non anche le altre maschere di
ricerca. E' possibile?

 ricerca. E' possibile?
In questo caso puoi sfruttare l'evento keydown della textbox CodAnagr:
private sub CodAnagr_keydown(KeyCode as integer, Shift as integer)
if KeyCode = vbkeyf2 then
DoCmd.OpenForm "RicercaAnagrafica", , , , , , Me.Name
end if
end sub
-- 
Ciao
Geppo 

 Geppo
Grande Geppo. Funziona tutto.
Solo il problema che sulla casella per la ricerca dell'anagrafica
vorrei inibire che alla pressione accidentale del tasto F1 (o di altri
che intendo creare) che ho utilizzato per la ricerca della ditta si
aprisse la maschera di ricerca per scegliere la ditta per cui si
registra il protocollo, che tra l'altro ho già inserito al campo
IdAzienda.
Ciao. Grazie.

 Ciao. Grazie.
-- 
Ciao
Geppo 


Praticamente nella macro autokeys ho inserito che F1 apre la maschera
di ricerca Ditte, F2 la maschera di ricerca Anagrafica e così via.
Quando sono sul campo CodAnagr deve essere attivo solo il tasto F2.
Ho provato a rinominare temporaneamente la macro autokeys ed infatti
sul codAnagr si attiva solo F2 in quanto inserita da codice su evento
keydown e mi restituisce il valore selezionato però contestualmente mi
esce un messaggio che dice dii non trovare la macro autokeys.
Cosa devo fare?

 Cosa devo fare?
tasto destro sulla textbox dal menu contestuale scegli proprietà e poi la 
scheda evento:
scorri tutti gli eventi e cancella eventuali voci "autokeys".
-- 
Ciao
Geppo 


Sulla casella CodAnagr non c'è nessun evento autokeys. Credo che si
attivi perchè forse è presente in qualche altra maschera seppur
chiusa.
Cmq farò delle verifiche più approfondite. Grazie per tutto l'aiuto
odierno. Ciao.
Giuseppe.

 Giuseppe.
Rinomina la macro poi chiudi e riapri in DB.
-- 
Ciao
Geppo