Allora, ho provato a spostare l'inizializzazione della connessione e del recordset nel form_activate, e li richiudo nel form_deactivate:

codice:
Private Sub Form_Activate()
 CnOrdNCli.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=GetsMag.mdb;"
 CnOrdNCli.CursorLocation = adUseClient
 qOrdNFor = "SELECT * FROM Fornitori"
 RsOrdNFor.Open qOrdNFor, CnOrdNCli, adOpenDynamic, adLockOptimistic
If (RsOrdNFor.BOF = True And RsOrdNFor.EOF = True) Then
MsgBox "Nessun Fornitore esistente per creare un ordine"
Else
With RsOrdNFor
    .MoveFirst
    While Not .EOF
    cmbCliente.AddItem !CognomeNome
    cmbCliente.ItemData(cmbCliente.NewIndex) = RsOrdNFor("IDFornitore").Value
    .MoveNext
    Wend
 End With
RsOrdNFor.Close
End If

End Sub
e

codice:
Private Sub Form_Deactivate()
RsOrdNFor.Close
CnOrdNCli.Close
End Sub
Ma in questo caso, se provo ad entrare e uscire dal form (senza fare altre operazioni) mi da "ERRORE di run-time 3704"-L'operazione non è consentita se l'oggetto è chiuso".
Questo msg me lo da in fase di esecuzione, ma non se faccio il debug.

Idee?
Grazie.