Sembra un problema di Namespace...
I Form sono nello stesso assembly (progetto)? Se non lo sono devi innanzitutto referenziare l'assembly che contiene il form2 nell'assembly che contiene il form1 e poi importare il namespace con la clausola 'Imports' (listato 1) o utilizzando l'intero namespace quando istanzi la variabile (listato2)
Listato1
Imports Agenti_2010_V2.inserimento_ordine
Public Class TuaClasse
...
Private Sub CellDoubleClick...
Dim fm As New Form2(id_ordine)
fm.ShowDialog()
End Sub
...
End Class
Listato2
Public Class TuaClasse
...
Private Sub CellDoubleClick...
Dim fm As New Agenti_2010_V2.inserimento_ordine.Form2(id_ordine)
fm.ShowDialog()
End Sub
...
End Class
Per ciò che riguarda tutorial e testi, ce ne sono a centinaia... Per i tutorial non saprei consigliarti, meglio cercare articoli specifici sul web sui vari argomenti, mentre per i libri, dipende anche dalla versione del framework che usi: attualmente sarebbe meglio usare la versione 3.5 dove sono state introdotte diverse tecnologie (WCF, WPF, LINQ, WF, ecc...) e onestamente non conosco testi specifici (uso ancora il framework 2.0).
Per il framework 2.0 io ho usato e uso ancora molto il testo di Balena "Programmare Microsoft Visual Basic 2005 - Il linguaggio e il framework" che offre ottimi spunti sulle funzionalità del framework e della programmazione OOP. Di questo testo ne esiste una versione ridotta ed economica ma comunque adatta per iniziare che si chiama "Visual Basic .NET Nozioni di base I Portatili"...
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole