Ho letto poco perchè mi pare ci sia tanto di non chiaro frutto anche di una NON idonea gestione.
Il primo GRANDE errore che commetti è di gestire una maschera da un'altra, questo è sbagliato perchè VINCOLI entrambe e non serve.
La 2° Maschera che apri deve essere indipendente, devi sfruttare le opzioni native per passare parametri e scrivere poi il codice all'interno della maschera per soddisfare la richiesta.
Secondo me non serve a nulla quello che fai anzi fa veramente solo della confusione, ho cercato di suggerirti come operare, ma addiruttura siamo arrivati a modificare il RS di maschera...
Ti ripeto la mia visione.
Cancella tutto quello che hai fatto e prova a semplificare.
Mi pare di aver capito che il Valore ID lo recuperi dalla Textbox[Testo600] (suggerisco di usare Nomi intelligenti non cosi)
Dalla Maschera1, su Click scrivi:
DoCmd.OpenForm "CalcoloPrezzo", acNormal, "", "[ID]=" & Me.Testo600 , , acDialog '<<--- Attenzione a questo [acDialog]
Questa chiamata FILTRA la Maschera2 con il Valore selezionato in Maschera1, e non serve NULL'ALTRO se non sincronizzare la ComboBox... che ovviamente su apertura non è sincronizzata.
Quindi su LOAD della Maschera2:
Private Sub Form_Load()
Me!NomeTuaCombo=Me!Id
End Sub
PROVA QUESTO CHE TI AVEVO ANCHE GIA' SUGGERITO, il fatto di non capire non è che sia una scusa per fare cavolate...!!
Veniamo all'uso di [acDialog], questo parametro serve sempre quando si aprono Maschere definibili di Dettaglio su Selezione, ed è il tuo caso... questo perchè se nella Maschera2 tu apportassi modifiche, dovresti, alla chiusura aggiornare la Maschera1 che invece ha ancora visualizzato i dati chiamiamoli VECCHI.
Quindi questo particolare metodo di apertura, definibile MODALE, rende la Maschera2 SINCRONA al codice della maschera1
e ti consente di aggiornare alla chiusura.
Ora non so se devi prendere in considerazione anche questa evenienza, nel caso lo dici e vediamo come si gestisce, ma prima dedicati a non fare cose assurde la dove serve essere semplici.