Newsgroup: it.comp.appl.access
Titolo: Intercettare "Su corrente" se la maschera in visualizzazione foglio dati è vuota

Ciao a tutti. Sto elaborando una maschera con una sottomaschera in
visualizzazione foglio dati. Nell'evento "Su Corrente" ho inserito un
procedura che compila un campo testo presente sulla maschera
principale. Il problema è che scorrendo i record dalla maschera
principale, ovviamente scorrono anche i record collegati nella
sottomaschera e nel caso in cui nella sottomaschera non ci siano
record, nel campo testo rimane il valore del record visualizzato in
precedenza. Come si fa a capire quando la sottomaschera è vuota? La
sottomaschera ha 3 campi: IDDDT, IDDett e Riga. Ho provato così:
If me.Riga<>"" then
Ho provato anche con
If me.recordsetclone.recordcount<> 0 then
ho provato anche
If Not Isnull (Me.Riga) then
Ma il risultato è sempre lo stesso.
Come si può fare?
Grazie
Ciao
Stefano

 ha scritto nel messaggio 
news:fa819f6f-6150-4aff...@w39g2000prb.googlegroups.com...



-------  RISPOSTA  ---------------
Non ricordo bene le regole che governano le sottomaschere e tutte e tre le 
prove che hai elencato mi sembrerebbero corrette. Sei proprio sicuro che la 
sottomaschera in quel caso non contiene nessun record ? Se lo confermi, 
potresti testare me.newrecord. Non vorrei sbagliare, ma mi sembra che 
recordcount venga valorizzato solo dopo che ti posizioni su un record: es. 
if not me.recordsetclone.eof then me.recordsetclone.movelast e poi viene 
valorizzato recordcount.
Ciao
Antonio


Ma se deve testare il tutto sotto l'evento current della form principale non 
dovrebbe essere cosi?
me.NomeSubForm.Recordclone.recordcount
-- 
Ciao
Geppo 

 me.NomeSubForm.Recordclone.recordcount
No:
Me!NomeSubForm.Form.RecordSetClone.RecordCount
Ma lui non ha scritto chiaramente in quale oggetto si trova il codice:
maschera principale o sottomaschera?
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 maschera principale o sottomaschera?
infatti c'era qualcosa che mi sfuggiva, Grazie. :-)
-- 
Ciao
Geppo 

Nella maschera principale ci sono i dati di intestazione del DDT:
IDDDT, Numero e Data. Nella sottomaschera ci sono le righe del
dettaglio: IDDettaglio, IDDDT, Riga. Quando io scorro nella maschera
principale i DDT, nella sottomaschera (foglio dati) compaiono le varie
righe che compongono il dettaglio del DDT. Se però il DDT non è ancora
stato completato, la sottomascherà non presenterà alcun record. In
questo caso, il campo testo che ho messo nella maschera principale che
deve essere compilato in base alla riga di riferimento che c'è nella
sottomaschera dovrebbe essere vuoto. In realtà, scorrendo i DDT della
maschera principale, nel campo testo resta visualizzato quello che
veniva visualizzato nel record precedente.


 veniva visualizzato nel record precedente.
Il nostro dubbio era dove si trova il tuo codice.
Questo di nuovo non hai rivelato.
Però se ti capisco bene non hai bisogno di nessun codice.
Se nella maschera principale solo vuoi mostrare il numero di
record della sottomaschera prova con una casella di testo
nella maschera principale con origine controllo:
=[NomeSubForm].[Form].[RecordsetClone].[RecordCount]
-- 
HTH


 wrote:


 ha scritto nel messaggio 
news:fa819f6f-6150-4aff...@w39g2000prb.googlegroups.com...



---------------risposta-------------------
If isnull(me.IDDDT) or me.IDDDT = 0 then
Forms!MascheraPrincipale!NomeControllo = null
exit sub
else
Forms!MascheraPrincipale!NomeControllo = quello che vuoi
end if
Ciao, Carlo

 ha scritto nel messaggionews:fa819f6f-6150-4aff...@w39g2000prb.googlegroups.com...

Niente da fare. Ho provato anche ad assegnare il conteggio delle righe
esistenti ad una variabile e mettere come origine dati della subform
una query con riferimento all'IDDDT della maschera principale:
Dim strCount as String
strcount=Dcount("[IDDDT]","qryPerRiga")
If IsNull(strSQL) Or (strSQL) = 0 Then
ecc...
ma neanche così.