Hallo,
der Befehl TransferSpreadsheet
erwartet entweder namentliche Parameter, oder gewisse Werte in einer vordefinierten Reihenfolge.
doCmd.TransferSpreadSheet TransferType, [Spreadsheettype], [TableName], [Filename], [HasFieldName], [Range], [UsaOA]
Im VBA-Code wird dieser Befehl wie folgt aufgerufen:
DoCmd.TransferSpreadsheet TransferType:=acImport, TableName:= "Messbereiche aktuell" , Filename:=AKT, HasFildName:=True , Range:=strWorksheet & "$"
In Excel können Range-Bezüge als absolut oder Relativ angegeben werden. Absolute Bezüge beinhalten immer ein "$"-Zeichen.
Ich nehme mal an dass es sich beim "Messbereiche_Tagliste" um einen Namenseintrag handeln muss. Es kann durchaus sein, dass Excel bei einem Namensverweis ein "$"-Zeichen am Ende braucht.
Für die bessere Lesbarkeit kann man auch den folgenden VBA-Code verwenden:
Sub ImportExcel()
'Exceldatei Messbereiche_Aktuell importieren
Pfad = Application.CurrentProject.Path & "\"
MsgBox (Pfad)
Dim AKT As String
AKT = (Pfad & "Import_Export_UPRO.xlsx")
MsgBox (AKT)
CurrentDb.Execute "Delete from [Messbereiche aktuell]", dbFailOnError
DoCmd.TransferSpreadsheet TransferType:=acImport, TableName:="Messbereiche aktuell", FileName:=AKT, HasFieldNames:=True, Range:="Messbereiche_Tagliste$"
End Sub
Die Variable strWorksheet wird nur einmal verwendet und kann daher als Wert direkt übergeben werden.
LG, BigBen
|