Hallo,
vielleicht hilft der folgende VBA-Code weiter?
Sub ImportExcelFile()
Dim strXLSFilename As String
Dim XLSApp As New Excel.Application
Dim wbFile As Excel.Workbook
Dim sh As Excel.Worksheet
strXLSFilename = "L:\temp\ImportInAccess\Daten.xlsx"
Dim strValue As String
Set wbFile = XLSApp.Workbooks.Open(strXLSFilename)
For Each sh In wbFile.Worksheets
' Standort auslesen
strValue = sh.Range("A1").Value
Debug.Print strValue
InsertNewValue "Tab_Standorte", "Standort", strValue
' Material auslesen
strValue = sh.Range("C5").Value
Debug.Print strValue
InsertNewValue "tab_Materialien", "Material", strValue
Next
wbFile.Close False
XLSApp.Quit
End Sub
Sub InsertNewValue(strTable As String, strFieldname As String, strValue As String)
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset(strTable, dbOpenDynaset)
rst.FindFirst (strFieldname & " = """ & strValue & """")
If rst.NoMatch Then
rst.AddNew
rst.Fields(strFieldname) = strValue
rst.Update
End If
rst.Close
End Sub
Dieser VBA-Ciode setzt voraus, dass in der Access-Datenbank die Tabellen tab_Standorte und Tab_Materialien existieren.
Tabelle: tab_Standort:
Felder: ID Autowert, Standort kurzer Text
Tabelle: tab_Materialien
Felder: ID Autowert, Material kurzer Text
Besonderheit: Im vba-Code wird vor dem hinzufügen eines neuen Eintrags geprüft, ob ein identischer Eintrag bereits vorhanden ist. Nur wenn der einzufügende Eintrag noch nicht enthalten ist, wird dieser angelegt.
LG, BigBen
|