Newsgroup: it.comp.appl.access
Titolo: riferimento controllo

Salve a tutto l'NG.
Nelle mie maschere di inserimento, per selezionare il codice cliente o
fornitore, utilizzo una maschera di ricerca che viene aperta su evento
keydown del controllo o su click di un pulsante con il codice
DoCmd.OpenForm "RicercaAnagrafica", , , , , , Me.Name
Dopo aver selezionato il  codice o premendo invio o il pulsante
conferma con il codice
Forms(Me.OpenArgs).idanagrafica = Forms!RicercaAnagrafica!
Elenconominativi
chiudo la maschera di ricerca e in automatico mi viene digitato il
codice cliente o fornitore.
Il problema nasce nella maschera di inserimento protocollo, dove ho
previsto che possa inviare una corrispondenza che abbia fino a 5
anagrafiche diverse (per conoscenza) e quindi ho creato nella tabella
Protocollo i campi Idanagrafica2, Idanagrafica3, Idanagrafica4 e
Idanagrafica5.
Come faccio a far riconoscere alla maschera di ricerca oltre alla
maschera chiamante anche il controllo che esegue la ricerca?
Spero di essere stato chiaro e ringrazio in anticipo per le risposte.
Ciao.
Giuseppe.

 ha scritto nel messaggio 
news:fd0d3582-42ee-40fb...@d36g2000prf.googlegroups.com...

Per esempio creando una variabile globale che valorizzi al click del 
controllo.
Ciao, Carlo 

 ha scritto nel messaggionews:fd0d3582-42ee-40fb...@d36g2000prf.googlegroups.com...

Grazie Carlo per la risposta.
Non essendo molto esperto nella creazione di variabili, e sapendo di
non poter chiedere ed avere la pappa pronta, chiedo almeno di fornirmi
indicazioni dove trovare degli esempi o riferimenti a siti per
approfondire la soluzione e adattarla al mio quesito.
Grazie anticipate.
Ciao.
Giuseppe.

 ha scritto nel messaggio 
news:56adba36-cfd5-4eac...@f37g2000pri.googlegroups.com...


-------------------
Cosě, al volo:
crea una variabile globale di tipo stringa in un modulo pubblico:
Dim MioNomeControllo as string
Poi al click di un pulsante:
Private Sub Comando0_Click()
MioNomeControllo  = 
Screen.ActiveControl.Name
End Sub
Ora andando a leggere la variabile ottieni il nome del controllo:
Public Function DimmiNomeControllo()as String
DimmiNomeControllo = NZ(MioNomeControllo ,"")
End Function
Ciao, Carlo

 Ciao, Carlo
Grazie Carlo per la risposta.
Abbi pazienza ci sto provando.
Ho fatto così:
in un modulo ho scritto:
Option Compare Database
Dim MioNomeControllo As String
-------------------------------------------------------------------------------------------
Public Function DimmiNomeControllo() As String
DimmiNomeControllo = Nz(MioNomeControllo, "")
End Function
e l'ho salvato come "Riferimento Controllo"
poi nella maschera frmProtocollo ho creato un pulsante (Comando128) e
su evento click ho messo:
MioNomeControllo = 
Screen.ActiveControl.Name
ovviamente non succede nulla.
Ho già sbagliato qualcosa? Cosa devo cambiare. Scusami, ma sulle
variabili sono molto indietro.
Magari potessi studiarli o con delle guide o con degli esempi.
Mi puoi aiutare, per favore nell'apprendimento?
Grazie Carlo.
Giuseppe.

 ha scritto nel messaggio 
news:bbe690fa-686e-4f80...@v13g2000yqm.googlegroups.com...






-----------------------------------------
E cosa doveva succedere?
Hai riempito la variabile....ti ho scritto che a questo punto puoi ricavarla 
dalla funzione
DimmiNomeControllo e farne quello che vuoi.
Per esempio:
msgbox "Il nome del controllo che esegue la ricerca è: " & 
DimmiNomeControllo
Ciao, Carlo

 ha scritto nel messaggionews:bbe690fa-686e-4f80...@v13g2000yqm.googlegroups.com...

Scusa Carlo, so che è snervante comunicare con uno che non parla la
stessa lingua, ma ripeto voglio capire il funzionamento delle
variabili e non avere questa soluzione già pronta e poi ritrovarmi a
dover creare un'altra senza saper procedere.
Ricapitolando:
MODULO:
Option Compare Database
 Dim MioNomeControllo As String
e lo salvo come "Riferimento Controllo"
nella maschera frmProtocollo su evento keydown dei controlli
IdAnagrafica2, 3 4 e 5 metto:
MioNomeControllo = 
Screen.ActiveControl.Name
If KeyCode = vbKeyF2 Then
DoCmd.OpenForm "RicercaAnagrafica", , , , , , Me.Name
End If
DimmiNomeControllo = Nz(MioNomeControllo, "")
dove lo metto?
E su conferma del record selezionato nella maschera di ricerca devo
cambiare
Forms(Me.OpenArgs).idanagrafica = Forms!RicercaAnagrafica!
Elenconominativi?
Non ti innervosire, purtroppo non è facile trovare questa soluzione
leggendo i post degli altri.
Se mi indichi siti o esempi per la creazione di variabili e la loro
applicabilità nelle maschere, me li stampo e me li studio.
Già altre volte, problemi risolvibili solo con le variabili, ho dovuto
abbandonarli perchè non sono riuscito a capire la procedura delle
variabili e non ho più avuto aiuto da chi mi rispondeva.
Scusami ancora.
Ciao.
Giuseppe.

 ha scritto nel messaggio 
news:b4900cae-36f4-4233...@g38g2000yqd.googlegroups.com...







--------------------------------------
Qui non si tratta di innervosirsi...ci mancherebbe...ci siamo passati tutti.
Questa la tua domanda:
"Come faccio a far riconoscere alla maschera di ricerca oltre alla
maschera chiamante anche il controllo che esegue la ricerca?"
A questa domanda ti ho risposto, credo, in modo esauriente.
Ti pongo io una domanda:
dove avresti messo il nome del controllo che esegue la ricerca?
Temo non sia questo quello che ti serve...e per capirlo bisognerebbe vedere 
il db o capire (spiegare) meglio cosa intenti fare, quale risultato 
ottenere.
Per me è difficile anche dirti dove puoi trovare delle spiegazioni, 
semplicemente perchè non è chiaro quello che vuoi fare.
Per quanto riguarda l'uso delle variabili trovi ampio materiale prima di 
tutto nella guida.
In sintesi: esistono almeno due tipi di variabili, locali e globali (private 
o pubbliche);
La variabile può essere di tipo "variant" quando non sai a priori che tipo 
di dati gli assegnerai, oppure di tipo numerico, stringa, ecc. quando sai 
bene che il tipo di dato da assegnare è un numero o una stringa di testo.
La variabile proprio come dice il nome è "variabile" nel senso che il valore 
potrebbe variare, al contrario di una variabile di tipo static.
Ciao, Carlo

 ha scritto nel messaggionews:b4900cae-36f4-4233...@g38g2000yqd.googlegroups.com...

Ciao Carlo, scusami se non sono stato chiaro nel spiegare cosa voglio
fare.
Ho una tabella tblAnagrafica con campi IdAnagrafica (numerico) e
ragione sociale (testo).
Poi ho una tabella tblProtocollo con IdProtocollo (numerico),
DataProtocollo, IdAnagrafica (numerico), IdAnagrafica2 (numerico),
IdAnagrafica3 (numerico), IdAnagrafica4 (numerico), IdAnagrafica5
(numerico), e IdModSpedizione (numerico) ecc...
Nella maschera di inserimento frmProtocollo quando devo inserire
l'IdAnagrafica, attraverso un pulsante o su evento keydown del
controllo idanagrafica con il codice
DoCmd.OpenForm "RicercaAnagrafica", , , , , , Me.Name
apro una maschera di ricerca (possibilità di ricerca per codice, per
nome, per p.iva e per c.f.) e una volta selezionato dalla casella di
riepilogo il mittente o il destinatario della registrazione del
protocollo tramite il codice
Forms(Me.OpenArgs).idanagrafica = Forms!RicercaAnagrafica!
su clik del pulsante "conferma" chiudo la maschera di ricerca e
memorizzo direttamente l'idAnagrafica nel controllo IdAnagrafica.
Altrettanto avviene per le altre maschere di inserimento documenti; e
funziona.
In questo tipo di inserimento ho il problema che posso spedire una
corrispondenza a più destinatari con lo stesso Nprotocollo; per cui ho
inserito nella tabella l'IdAnagrafica2, 3, 4 e 5.
Se utilizzo lo stesso sistema, quando chiudo la maschera di ricerca e
confermo l'idanagrafica scelto me lo inserisce nel campo idanagrafica
e non in quello da cui è partita l'apertura della ricerca.
Quindi così come indico alla maschera di ricerca qual'è la form che fa
la ricerca e il controllo in cui deve essere memorizzato il valore,
così vorrei fare per far capire alla maschera che il controllo non è
sempre IdAnagrafica ma può essere IdAnagrafica2 o 3 o 4 o 5.
Spero di essere stato chiaro. Trattasi quindi di una variabile
numerica.
Ciao.
Giuseppe.

 ha scritto
cut

-------------------------------------------
Mi devi scusare ma ci ho capito poco o nulla.
Fai prima a mandarmi il db che, se posso, gli do un'occhiata.
Ciao, Carlo