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:
1 2 3 4 5 6 7 8 9 10 11 | Sub ImportExcel()
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
|