Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

con 'Bof e Eof' non sempre ho il valore corretto

51 views
Skip to first unread message

francode...@gmail.com

unread,
Jun 15, 2016, 6:01:06 AM6/15/16
to
ciao a tutti

ho maschera con 2 sottomaschere.
Su click di un pulsante della maschera prncipale
ho inserito questo codice...
per trasferire i record dalla subform "SM_FattureFornitoridaRicevere"
alla subform "SM_DettFatturaFornitore"

____________inizio___________________

Dim Rs As DAO.Recordset, Rs1 As DAO.Recordset, Rs2 As DAO.Recordset

Set Rs = Me.Recordset
Set Rs1 = SM_FattureFornitoridaRicevere.Form.Recordset
Set Rs2 = SM_DettFatturaFornitore.Form.Recordset

'MsgBox Rs1.RecordCount

If Not Rs1.BOF And Not Rs1.EOF Then
Rs1.MoveFirst
Rs2.AddNew

'MsgBox Rs1.RecordCount

Rs2!IdFatturaFo = Rs!IdFatturaFo
Rs2!IdCarico = Rs1!IdCarico
Rs2!ImportoLordo = Rs1!ImportoLordo
Rs2!TotSconto = Rs1!TotSconto
Rs2!CauzioneImballi = Rs1!CauzioneImballi
Rs2!Spese = Rs1!Spese

Rs2.Update
Rs1.MoveNext

SM_FattureFornitoridaRicevere.Requery
SM_DettFatturaFornitore.Form!CboCarico.Requery
Else
MsgBox "Non ci sono più record da aggiungere.", vbExclamation, "Messaggio!"

End If
____________fine___________________


su dopo aggiornamento di "CboCarico" nella
subform "SM_DettFatturaFornitore" ho inserito
quest'altro codice...
ugualmente per trasferire i record dalla
subform "SM_FattureFornitoridaRicevere"
alla subform "SM_DettFatturaFornitore"

____________inizio___________________

ImportoLordo = CboCarico.Column(5)
TotSconto = CboCarico.Column(6)
CauzioneImballi = CboCarico.Column(7)
Spese = CboCarico.Column(8)

Me.Dirty = False
Me.Parent!SM_FattureFornitoridaRicevere.Requery
CboCarico.Requery
____________fine___________________

il problema è che se trasferisco l'ulitmo record
con "CboCarico" e poi seleziono il pulsante
anzichè avere il messaggio "Non ci sono più record da aggiungere."
ho l'errore 3021 - Nessun record corrente.

In pratica Bof e Eof non riconoscono che la sottomaschera è vuota,
mentre RecordCount mi da il valore corretto cioè "0".

Perchè?
come posso risolvere?

Grazie

Potone

unread,
Jul 21, 2016, 8:36:39 AM7/21/16
to
Il giorno mercoledì 15 giugno 2016 12:01:06 UTC+2, francode...@gmail.com ha scritto:
> ciao a tutti
>
> ho maschera con 2 sottomaschere.
[Cut]
> Grazie

Ciao
all'indirizzo qui di seguito trovi informazioni su DAO.Eof e Bof
https://msdn.microsoft.com/EN-US/library/office/ff821459.aspx

trà le altre cose trovi questa frase:
"If you delete the last remaining record in the Recordset object, the BOF and EOF properties may remain False until you attempt to reposition the current record."

Magari non è esattamente il tuo caso ma probabilmente la situazione è simile, ovvero Bof e Eof non assumono il valore che ci si potrebbe aspettare.

In genere per la presenza di record verifico il valore di RecordCount, che, come hai constatato tu stesso, restituisce il valore corretto, quindi potresti sostituire:
> If Not Rs1.BOF And Not Rs1.EOF Then
con
If Rs1.RecordCount<>0 Then

Ciao
Mat.

Franco dellavalle

unread,
Jul 22, 2016, 3:12:15 AM7/22/16
to
Grazie Mat
0 new messages