Guten Abend!
Ich war ewig nicht mehr da, und fange jetzt wieder an, mein altes Hirn zu bemühen.
Mein Problem:
Ich möchte eine Excel-Tabelle in Access importieren und zwar per VBA.
Privat Sub
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "ball_tbl_Ehrengäste", "D:\.....xlsx"
End Sub
Funktioniert!
Aber ich habe ein Formular mit einem Textfeld zur Auswahl des Pfades gemacht (funktioniert), aber wie bekomme ich den Wert des Textfeldes in die Prozedur?
Formularname: ball_frm_ImportEhrengäste
Button der die Prozedur startet
Feldname: ImportExcel
Stehe seit 2 Tagen auf der Leitung.
Danke und LG aus Wien
Michael
Hallo,
einfach den feldnamen verwenden.
Privat Sub
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "ball_tbl_Ehrengäste", Me.ImportExcel
End Sub
Wenn ImportExcel der Feldnamen des feldes mit dem Pfad ist.
Servus Klaus!
Dann bekomme ich einen Laufzeitfehler 3044.
D:\.. .xlsx\XLSX ist kein zulässiger Pfad. Laut Fehlermeldung hängt noch\XLSX zusätzlich am Dateinamen.
Habe ich auch auf einem 2ten PC probiert. Auf Me.ImportExcel liegt der Pfad aber korrekt.
So suche ich den Pfad:
Private Sub SuchenDialog_Click()
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = Nz(Me.ImportExcel, "")
.Show
If .SelectedItems.Count Then
Me.ImportExcel = .SelectedItems(1) & "\"
Else
Me.ImportExcel = ""
End If
End With
End Sub
Danke für Deine Hilfe
LG aus Wien
Michael
Zitat von: Michael58 am Januar 31, 2024, 12:05:17Me.ImportExcel = .SelectedItems(1) & "\"
Wenn du in dem FileDialog explizit eine Datei auswählst, ist der Backslash am Ende falsch.
Danke Euch beiden!!!
PhilS, dass wars! Ganz herzlichen Dank. Ich bin komplett auf der Leitung gestanden.
LG aus Wien
Michael