Newsgroup: it.comp.appl.access
Titolo: Impossibile riferirsi a campo in sottomaschera, perchè?

Buondě!
Sto cercando di far funzionare questa semplice stringa ma non riesco a 
riferirmi al campo della sottomaschera
 
Private Sub Form_Open(Cancel As Integer)
 
If CurrentProject.AllForms("NUOVA FATTURA ACQUISTO").IsLoaded Then
Me.USCITE = Forms![PRIMA NOTA]![Sottomaschera PRIMA NOTA].Form![IMPORTO]
else
end if
end sub
 
Non č corretta la sintassi per riferirsi al campo di una sottomaschera?
Giorgia 
 
 


questa "NUOVA FATTURA ACQUISTO" e questa [PRIMA NOTA] sono la stessa?
la sintassi e' corretta
-- 
 
ac (x=y-1)

 ac (x=y-1)
 
Giorgia 
 
 


Sei certa che [PRIMA NOTA] esiste nella collezione Forms?
 
-- 
 
ac (x=y-1)

 sottomaschera?
 
Come sempre: Quale numero è messaggio di errore ricevi?
Si riferisce alla maschera principale o alla sottomaschera?
 
Leggi anche:
http://www.donkarl.com/it?FAQ4.2
 
Soprattutto la sezione su "Nome" <> "Oggetto origine".
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 

 ac (x=y-1) 
 
 

 Soprattutto la sezione su "Nome" <> "Oggetto origine".
 
Già visionato grazie, ma non ho risolto.


 Sì esiste, sia la form che la sottomaschera
 
Allora sono importanti le informazioni che Karl ha citato.
Non comprendo pero' perche' fai il il test su "NUOVA FATTURA ACQUISTO" e 
non su [PRIMA NOTA] e la sub Form_Open a quale form si riferisce?
 
 
-- 
 
ac (x=y-1)

 ac (x=y-1) 
 
 


Cioe'?
Fammi capire. Tu stai aprendo [PRIMA NOTA] e prelevi un campo da una 
sottomaschera contenuta in [PRIMA NOTA]?
Se e' cosi' a me sembra una specie di comma 22.
 
When you first open a form, the following events occur in this order:
 
Open → Load → Resize → Activate → Current
 
La domanda e' quando viene attivata la subform?
 
-- 
 
ac (x=y-1)

 NOTA].Form![IMPORTO]
 
con
MsgBox Forms![PRIMA NOTA]![Sottomaschera PRIMA NOTA].Form![IMPORTO]
Me.USCITE = 1 'o un altro valore fisso adeguato al tipo del campo
 
Cosa succede?
Se l'errore viene nella seconda riga, controlla se Me.USCITE
non è un controllo calcolato, se la maschera è aggionabile,
se puoi inserire un valore a mano ecc.
 
Se non riesci:
Cos'è Me? Cioè come si chiama la maschera attuale
nella quale si trova USCITE?


 ac (x=y-1) 
 
 

Ciao!
 
Non è che Me.USCITE è un campo calcolato?
 
Se metti "Me.USCITE = 1" va in errore ugualmente?
 
HTH
Popi

 Karl
 
Grazie, Giorgia 
 
 


Nel senso che stai confermando il mio dubbio?
Non puoi. Una similitudine.
Stai cercando di mangiare una torta senza aver scartato, prima, il pacco 
che la contiene.
Sta roba va messa sull'evento di Current ed anche li potra' esserci 
qualche problemino.
 
 
-- 
 
ac (x=y-1)

 maschera è aggiornabile e volendo si può inserire a mano....
 
Guarda che qui nessuno è ancora riuscito a capire che cosa vuoi 
ottenere, partendo da quale situazione.
 
E convinciti di una cosa: se gente come Alessandro Cara e Karl 
Donaubauer non è riuscita a capirci nulla di quel che chiedi, la colpa 
è solo la tua che, mea quidem sententia, non sai né leggere, né 
scrivere.
 
Bruno
 
 

 ha scritto nel messaggio 
news:jggb67$lam$1...@speranza.aioe.org...

La sintassi č corretta ed anche corretto impostare il valore di Me.Uscite 
sul valore della sottomaschera.
Attenzione perň che NON puoi nč leggere il valore di sottomaschera nč 
impostare il valore di Uscite
se lo piazzi cosě com'č sull'evento Form_Open perchč questo č il primo 
evento della maschera e
quei valori che cerchi o che vuoi assegnare NON sono ancora disponibili.
Quindi o cambi l'evento o costringi il codice a farlo PRIMA di assegnare il 
calcolo o la lettura del valore.
Per dimostrarti questo fai cosě, scrivi solo questo:
 
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acLast
MsgBox Forms![PRIMA NOTA]![Sottomaschera PRIMA NOTA].Form![IMPORTO]
End sub
 
Se ti compare il messaggio con il giusto valore vuol dire che la sintassi č 
a posto ma vuol dire anche
che devi spostare il codice in un altro evento; infatti quel
DoCmd.GoToRecord , , acLast
fa sě che il codice prende in considerazione altri eventi, come scrive 
Alessandro:
Open ? Load ? Resize ? Activate ? Current
e solo alla fine ritorna a Form Open per elaborare il
MsgBox. Provare per credere.
 
Ciao, Carlo 
 
 

 ha scritto nel messaggio 
news:4f2be23b$0$1381$4faf...@reader2.news.tin.it...

Sicuramente sono convinta di essere inesperta e ho sempre pensato di 
rivolgermi a questo forum per cercare di imparare qualcosa in più ed infatti 
molte persone, tra cui quelle citate da te, finora mi han sempre aiutata con 
pazienza.
Invece, non immaginavo fosse un gruppo chiuso tra persone già altamente 
qualificate nell'ambito access da utilizzare per scambiare informazioni di 
un certo livello.
A mio parere tu di un certo livello hai solo queste competenze.
 
Giorgia
 
 
 

 mano....
 
Ok. Allora potrebb'essere un problema del timing nell'evento
Apertura. Di solito basta allungare un po' la strada. Prova con p.e.
 
Me!USCITE.SetFocus
Me.USCITE = Forms![PRIMA NOTA]![Sottomaschera PRIMA NOTA].Form![IMPORTO]
 
Non importa su quale controllo metti il focus. Puoi anche scegliere
il primo nella successione e diverso da USCITE.


 ha scritto nel messaggio 
news:jggt6h$eeu$1...@tdi.cu.mi.it...

grazie mi hai aiutato a ragionare come in effetti aveva fatto anche 
Alessandro.
Su Private Sub Form_Current() funziona il riferimento al campo tanto 
cercato.
 
Ancora una precisazione: talvolta, per ogni protocollo nella [Sottomaschera 
PRIMA NOTA] ci possono essere piů record (nel caso per es. di un pagamento a 
rate), esiste un evento ancora piů preciso di Current e quindi aggiornare il 
campo [USCITE] a seconda del record selezionato nella [Sottomaschera PRIMA 
NOTA]?
 
Giorgia 
 
 

 Giorgia
 
Sě.
L'evento current, in questo caso, contiene il codice che viene lanciato a 
fronte di "su corrente" della maschera principale.
Anche le maschere secondarie o sottomaschere hanno il loro evento "Su 
Corrente" - on current -.
Dunque č possibile sistemare lě un eventuale codice che si scatena ogni 
volta avrai selezionato un record
facendolo diventare, appunto, il record "corrente".
Occhio alle possibili implicazioni, fai delle prove.
 
Ciao, Carlo