Perchè devi usare il SetFocus...?
Prima di andare avanti a testa bassa, non pensi sia opportuno riflettere sul perchè di certe scelte...?
Il SetFocus non serve a NULLA nel tuo caso... ho visto codice di persone che sfruttano il Focus per poi usare la proprietà TEXT dei controlli... il che mi lascia sinceramente molto stranito, è pur vero che ognuno si fa male come meglio crede ma se parliamo con cognizione di causa e non tanto per fare chiacchiera, è una cosa inutile e sbagliata.
Così come è sbagliato che tu debba salvare l'ID in una TextBox quando hai la ListBox che dal momento in cui ha un ItemSelected, quindi viene valorizzata la proprietà ListIndex, è perfettamente leggibile senza tante complicazioni.
A dirla tutta per finezza di tecnica, nella Programmazione ad Oggetti si predispongono delle CUSTOM Properties negli Oggetti, e questo anche nelle Form che sono delle Classi...
Nel tuo caso se volessi essere più tecnico, potresti predisporre nella Form una Property Get/Let finalizzata proprio ad esporre Proprietà Public.
Property Let Id(Value As Long)
Me.NomeListBox.Value=Value
End Property
Property Get Id() As Long
Id= Me.NomeListBox.Value
End Property
Per leggere il valore a questo punto leggi la proprietà di Form...
TuoID=Forms("Nome2°Form).Id
Fai sempre un passo per volta, ma nella direzione giusta non a caso...