Hi,
ich habe ein spezielles Problem: Wir
erhalten regelmäßig eine Exceldatei
(Export aus SAP). Diese Datei möchten wir
in eine Access-Datenbank so importieren,
dass nur die Zeilen importiert werden,
bei denen ein Indexwert noch nicht in der
bestehenden Datenbank enthalten ist. Also
z.B., wenn schon ein Datensatz mit dem
Indexwert „520145“ vorhanden ist, sollen
Excelzeilen mit diesem Wert ignoriert
werden.
Am besten, Du importierst die gesamte Tabelle (also auch die unerwünschten Datensätze) in eine temporäre Tabelle (=eine normale, speziell zu diesem Zweck eingerichtete Tabelle). Dann übernimmst Du die Datensätze per Anfügeanfrage (neu erstellen, z.B. AbfrageTest, eigenschaft SQL):
INSERT INTO RichtigeTabelle
SELECT \* FROM TemporäreTabelle
WHERE TemporäreTabelle.Indexwert NOT IN(SELECT Indexwert FROM RichtigeTabelle);
Toll wäre es, wenn man das Ganze per
Button bei Bedarf starten könnte.
Ja, erstell einen Button z.B. btnTest, und in den Eigenschaften (rechte Maustaste), Ereignis, Code-Editor:
Private Sub btnTest\_Click()
DoCmd.SetWarnings False
docmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel97, "TemporäreTabelle", "C:\Temp\SAP\_EXport.XLS"
DoCmd.OpenQuery "AbfrageTest"
DoCmd.SetWarnings True
End Sub
Evtl müßtest Du vor dem Import die Temp-Tabelle löschen:
DoCmd.DeleteObject acTable, "TemporäreTabelle"
DoCmd.SetWarnings schaltet die Fragerei vor jeder Aktion aus bzw. wieder an.
Mein Skill: Ich bin in Excel relativ
firm, aber Access-Anfänger.
Find ich gut, daß Du das sagst, ich hoffe, es war ausführlich genug 
Gruß
J.