Sinceramente il tuo codice non l'ho mai usato, poi lo proverò e ti dirò meglio (ci sono dei comandi che non agiscono direttamente sul database, per questo alla chiusura del programma vengono persi).

Ad ogni modo se vuoi andare sul sicuro io uso il seguente codice e va che è una meraviglia:

codice:
Dim connessione As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db1.mdb")
connessione.Open()
Inserimento = "INSERT INTO...resto della query di inserimento"
        Dim QCommand As New OleDb.OleDbCommand(Inserimento, connessione)
        InsReader = QCommand.ExecuteScalar
connessione.Close()
Spero ti possa essere utile e scusami ancora se non sono riuscito ad essere più tecnico sul perchè il tuo codice non fa esattamente quello che vorresti.