Je doute que votre problème soit dû aux valeurs Null dans valor1, sauf si le champ campo1 rejette Nulls.
Vous avez besoin d'une instruction INSERT acceptée par le moteur de base de données Access. Par exemple, cette instruction exécutée dans Access avec ouverture DBDestino.mdb:
INSERT INTO tablaDest (campo1, campo2)
SELECT valor1, valor2
FROM tablaOrigen IN 'C:\Access\DBOrigen.mdb';
Je ne suis pas compétent avec VB.Net, mais je pense que vous pouvez ouvrir une connexion à DBDestino.mdb, puis exécuter le même INSERT déclaration qui fonctionne dans Access.
Imports System.Data.OleDb
Module Module1
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim icount As Integer
Dim strInsert As String
Sub Main()
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Access\DBDestino.mdb;")
cn.Open()
strInsert = "INSERT INTO tablaDest (campo1, campo2) " & _
"SELECT valor1, valor2 " & _
"FROM tablaOrigen IN 'C:\Access\DBOrigen.mdb';"
cmd = New OleDbCommand(strInsert, cn)
icount = cmd.ExecuteNonQuery
Debug.Print(icount)
cn.Close()
End Sub
End Module
J'ai testé que sur mon système, et les valeurs de tablaOrigen ont été avec succès insérés dans tablaDest, inclus les valeurs nulles.