Quel tipo di eccezione viene restituita quando non è stato invocato il metodo New dell'oggetto.
in poche parole se viene definito un oggetto ma non viene inizializzatto è come se ti compri una macchina e pretendi che cammini senza accenderla.
non so che tipo di oggetto sia Data2, se lo definisci nel codice, ti consiglio di mettere prima del MoveFirst un
se si tratta di un controllo winform allora è probabile che venga generato quell'errore perchè forse viene creata l'istanza solo dopo il caricamento del form (mi sembra strano perché normalmente lo fa prima di scatenare l'evento Load).codice:Data2.Recordset = New qualcosa