Ein wenig stecken. Ich habe eine Excel-Tabelle mit beispielsweise den folgenden Spalten [Datum], [Name], [PostCode], [Stadt]Excel Einfügen in Access-Tabelle aus Excel definiert Tabelle mit einer Where-Klausel
Und eine Zugriffstabelle mit den gleichen Spaltennamen.
Ich versuche, die Excel-Datentabelle in die Access-Tabelle einzufügen, aber eine WHERE-Klausel anzuwenden, so dass es Daten bereits in der Zugriffstabelle ignoriert.
Ich kann gerne alle Daten in die Access-Tabelle einfügen, aber kann nicht eine WHERE-Klausel erfolgreich ignorieren die vorhandenen Daten. Und ärgerlicherweise kann ich den tatsächlichen Tabellennamen nicht korrekt referenzieren, also referenziere ich das Blatt (aber funktioniert gut).
Dies ist der Code ich bis jetzt haben:
Sub TestInsert()
Dim cnn As ADODB.Connection
Dim dbPath As String
Dim xlPath As String
Dim uSQL As String
dbPath = "C:\Test\TestDB.accdb"
xlPath = "C:\Test\TestXL.xlsm"
'Set Connection string
Set cnn = New Connection
cnnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath
'Open connection to db
cnn.Open cnnstr
uSQL = "INSERT INTO tbl_ApolloBrochurewareReportTEST " _
& "SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & xlPath & "].[Sheet1$]"
cnn.Execute uSQL
cnn.Close
End Sub
Jede Eingabe oder Wissen wäre toll, danke.
Wenn Sie einen eindeutigen Index für das Datumsfeld platzieren dann doppelte Datensätze werden einfach weggeworfen werden. Es sollte diesen Index sowieso geben, wenn es keine Duplikate geben sollte, aber ein Datumsfeld wird selten als eindeutiges Feld verwendet - Daten sind für diesen Zweck nicht zuverlässig, jedes vorhandene Zeitelement wird diese * anscheinend * doppelten Datensätze erlauben. –