Newsgroup: it.comp.appl.access
Titolo: Errore su TreeView

Buongiorno , 
 
Non riesco a capire il motivo perchè se apro la Form  ABC_Ordini_Elenco
da pulsante ( su Form avviamento )  
DoCmd.OpenForm "ABC_Ordini_Elenco"
 
La Form si apre regolarmente e mi permette di  cercare dalla Cbo "Elenco intestazione"
l'intestazione voluta e mi popola la casella di testo "Intestazione"  e la casella " IDCliente"
e tutto regolare le SubForm visualizzano i record in relazione .
 
La routine su Dopo Aggiornamento  di "Elenco Intestazione" è questa 
Private Sub Elenco_Intestazione_AfterUpdate()
 With CodeContextObject
        DoCmd.Hourglass False
        DoCmd.GoToControl "Intestazione"
        DoCmd.FindRecord .[Elenco Intestazione], acEntire, False, , False, , True
        DoCmd.GoToControl "ABC_Ordini_Elenco_Ordini_STM"
 
        End With
 
End Sub
 
 
Ora se effettuo l'apertura della stessa Form ABC_Ordini_Elenco
dal controllo TreeView , la form si apre ma come vado a fare la ricerca 
sulla Cbo "Elenco intestazione"   mi da errore :
Errore di Run-time 2137 
IMPOSSIBILE UTILIZZARE TROVA E SOSTITUISCI , il debug si posiziona 
sulla riga : (  DoCmd.FindRecord .[Elenco Intestazione], acEntire, False, , False, , True)
 
Private Sub Elenco_Intestazione_AfterUpdate()
 
 With CodeContextObject
        DoCmd.Hourglass False
        DoCmd.GoToControl "Intestazione"
        DoCmd.FindRecord .[Elenco Intestazione], acEntire, False, , False, , True
        DoCmd.GoToControl "ABC_Ordini_Elenco_Ordini_STM"
 
        End With
 
 
 
N.B. se apro la Form da pulsante  mi visualizza  
casella "Intestazione"  e la casella " IDCliente" con i valori  del primo record
se apro la Form da TreeView  le due caselle sono vuote .
 
l'origine record della Form è questo 
 
SELECT ABC_FORNITORI.Intestazione, ABC_FORNITORI.CodiceFornitore, ABC_PRODOTTI.CodiceProdotto, ABC_PRODOTTI.IDProdotto
FROM ABC_FORNITORI INNER JOIN ABC_PRODOTTI ON ABC_FORNITORI.CodiceFornitore = ABC_PRODOTTI.CodiceFornitore;
 
 
Sapete cosa succede ? 
 
Grazie 
Giuseppe

Prima di capire nel dettaglio... il riferimento CodeContextObject va usato in modo attento.
 
Prova ad esempio a verificare sempre il nome dell'oggetto restituito ed il type su Evento LOAD ed anche su Evento OPEN della maschera.
Restituiscono la stessa cosa...?
 
Tu quale evento usi per memorizzare il CodeContextObject chiamante che ovviamente cambia continuamente essendo un riferimento di applicazione dinamico...?
 
Serve tu faccia qualche riflessione più centrata sull'oggetto, su come viene valorizzato, come cambia e quando, a quel punto sai o meglio capisci come gestirlo a seconda di dove lo chiami per leggerlo.
 
Ti suggerirei di provare a chiamare una form da una form anche passando per una funzione pubblica o definendo la form chiamata come popup... sono casistiche che ti possono chiarire le cose...
 
@Alex

 Ti suggerirei di provare a chiamare una form da una form anche passando per una funzione pubblica o definendo la form chiamata come popup... sono casistiche che ti possono chiarire le cose...
 
ho la stessa chiamata con pulsante da altra Form e non mi crea nessun problema , apre la Form con DoCmd.OpenForm "ABC_Ordini_Elenco" 
e i Nome della Form che apre risulta sempre :
" Elenco Ordini generico "
 
il problema è solo quando provo ad aprire da comando TreeView 
ElseIf Node.Children = 0 And Node.Key = "LOrd" Then
DoCmd.Echo True
DoCmd.OpenForm "ABC_Ordini_Elenco", acNormal, "", "", acNormal  
 
Ciao 
Giuseppe