Newsgroup: it.comp.appl.access
Titolo: Problema setfocus con Recordset

ciao a tutti
 
Chiedo il vostro aiuto per capire perchè con 
Me!SM_DettFatturaFornitore.SetFocus nel "punto 2"
ho l'errore: 3420 oggetto non valido o non impostato
mentre nel "punto 1" No?
Grazie.
 
        Dim Rs As DAO.Recordset, Rs1 As DAO.Recordset, Rs2 As DAO.Recordset
 
        Set Rs = Me.Recordset
        Set Rs1 = Me!SM_FattureFornitoridaRicevere.Form.Recordset
 
(punto 1)Me!SM_DettFatturaFornitore.SetFocus
 
        Set Rs2 = Me!SM_DettFatturaFornitore.Form.Recordset
 
        If Not Rs1.BOF And Not Rs1.EOF Then
 
(punto 2)'Me!SM_DettFatturaFornitore.SetFocus (in questo punto ho l'errore: 3420 oggetto non valido o non impostato) 
 
            Rs1.MoveFirst
            Rs2.AddNew
 
            Rs2!IdFatturaFo = Rs!IdFatturaFo
            Rs2!IDCarico = Rs1!IDCarico
            Rs2!ImportoLordo = Rs1!ImportoLordo
            Rs2!Totale = Rs1!Totale
            Rs2!Spese = Rs1!Spese 
 
            Rs2.Update
            Rs1.MoveNext
 
            Me!SM_FattureFornitoridaRicevere.Requery
 
        Else
            MsgBox "Non ci sono più record da aggiungere!!!"
        End If
 
        Set Rs = Nothing
        Set Rs1 = Nothing
        Set Rs2 = Nothing
 

 Set Rs1 = Me!SM_FattureFornitoridaRicevere.Form.Recordset
 
Mai vista questa costruzione.
 
1)
Me e' il riferimento alla maschera corrente (immagino). 
Giusto  ?   
 
2)
SM_FattureFornitoridaRicevere cos' e' esattamente ? Ossia 
che controllo e' ?  
 
3)
Me!SM_FattureFornitoridaRicevere.Form.Recordset
 
????? 
Mai vista 'sta cosa
 
Non potresti spiegare meglio (anche a parole) che deve fare
questa maschera ? 

 ' (punto 2)
          Me!SM_DettFatturaFornitore.SetFocus 
          '(in questo punto ho l'errore: 3420 oggetto non valido
          'o non impostato) 
 
Secondo me il bug sta nel Me. Credo almeno, non ne sono sicuro.
Perche' quando fai : 
Me!SM_DettFatturaFornitore.SetFocus 
 
la sottomaschera diviene la Me e dunque questa non ha piu' la 
maschera madre. Cioe' punta lei stessa a Me, non so se ... 
 
Se dunque provi a scrivere : 
 
dim M_Madre as form, M_figlia as form 
set M_madre = Me 
set M_figlia = Me!SM_DettFatturaFornitore.form
 
' e poi : 
Set Rs  = M_Madre.Recordset
Set Rs1 = M_Figlia.Recordset
Set Rs2 = M_Figlia.Recordset
 
If Not Rs1.BOF And Not Rs1.EOF Then
   M_Madre.SetFocus 
 
   ' ...
   ' ...
endif 
 
quell' errore dovrebbe scomparire. Fammi sapere.
 

grazie, ma era la maschera corrotta
soluzione:
 
      Dim Rs As DAO.Recordset, Rs1 As DAO.Recordset, Rs2 As DAO.Recordset
 
        Set Rs = Me.Recordset
        Set Rs1 = Me!SM_FattureFornitoridaRicevere.Form.Recordset 
        Set Rs2 = Me!SM_DettFatturaFornitore.Form.Recordset
 
        If Not Rs1.BOF And Not Rs1.EOF Then
 


 Set Rs2 = Me!SM_DettFatturaFornitore.Form.Recordset
 
vuol dire che hai evitato di spostare il focus, ossia hai
fondamentalmente (ma  in  modo diverso)  seguito  la  mia 
spiegazione del perche' avveniva quel problema.
 
Credo sia didattico (umilmente parlando) provare  a  fare
come ti dissi per vedere se il problema era quello. 
 
Ciao