Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Mehrere Exel Dateien in Acces Importieren

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen,

Ich habe nach langer suche, und vielen versuchen leider nirgends ein passender Code für meine Aufgabe gefunden.

Ich hoffe, das ich hier auf hilfe stose ;)

Zu meinem Problem:

Jeweils am Ende vom Monat, werden 15 .xls Files in eine MS-Acces DB Importiert.

Dies wurde bisher Manuell gemacht, und ich gieng wie folgt vor:

Löschen des Tabelleninhaltes aus Tabelle1.

Import des .xls files in die nun lehre Tabelle1.

(dammit die Struktur und die Beziehungen der Tabelle weiterhin bestehen)

Nun möchte ich mit einem VBA Code, der beim Klicken auf ein Button in einem Formular ausgeführt wird, folgende Schritte automatisch ausführen lassen.

Schritt 1: Bei allen bestehenden 15. Tabellen sollen nur die Inhalte gelöscht werden.

Schritt 2: Nun sollen allte 15 Tabellen Importiert und in die lehren Tabellen angefügt werden.

Fals dies nicht möglich ist, könnte ich mir auf vorstellen, das man jeweil mit einem Drop-Down Menu die gewünschte Tabelle auswählen kann.

Ich hoffe jemand kann mir helfen!

Beste Grüsse

Cubalaca

d.h. aus dem was ich so herauslese hast du noch nie mit office automation zu tun gehabt?

so aus dem gedächtnis heraus:

Dim strPfad As String

strPfad = "X:\deine\datei.xls"

GetObject(strPfad, ...)
oder z.b.
Dim ExcelWorkbook As Excel.Workbook

Dim strPfad As String

strPfad = "X:\deine\datei.xls"

Set ExcelWorkbook = ExcelObjekt.Workbooks.Open(strPfad)

ExcelWorkbook.Worksheets("Tabelle1").Range...

lies dich halt in das excel-objektmodell ein und sieh dir dort die objekthierarchie (workbooks, worksheets, ranges, cells, ...) an.

s'Amstel

Danke amstelchen für deine Antwort und Hilfe.

Ich habe tatsächlich nicht viel erfahrung mit VBA, aber mir scheint, dass ich mich nicht klar genug ausgedrückt habe.

Ich möchte die Excel dateien in Acces Importieren, und hab mir nun nen Code gebastelt:

Private Sub Befehl38_Click()

Dim dummy As Object

On Error Resume Next

Set dummy = CurrentDb.TableDefs("Tabellenbezeichnung")

On Error GoTo 0

If dummy Is Nothing Then

DoCmd.TransferSpreadsheet acImport, 8, "z_Test", _

"\\SG1005p-V1\SCS-HR-HCO$\0_Intern\Reporting_Swisscom\FastReporting\Ausgabe Auto Excel\cx_0002.xls", True, ""

'wenn Tabelle nicht vorhanden , importiere

'sie von deinem individuellen "zielPfad"

Else

'ansonsten lösche tabelle

DoCmd.DeleteObject acTable, "z_test"

'und importiere neu

DoCmd.TransferSpreadsheet acImport, 8, "Tabelle1", _

"\\SG1005p-V1\SCS-HR-HCO$\0_Intern\Reporting_Swisscom\FastReporting\Ausgabe Auto Excel\cx_0002.xls", True, ""

End If

End Sub

Der Code scheint zu Funktionieren, jedoch möchte ich alle 15 Tabellen Importieren, und mit dem code kann ich ja nur eine.

Edit:

Um die Inhalte zu löschen, habe ich diesen code verwendet:

Private Sub Import_VB_Click()

MsgBox "Sie löschen alle Inhalte der Tabellen! Nur bei Import betätigen!, vbCritical,Löschen der Tabelleninhalte "

CurrentDb().Execute "DELETE FROM cx_0002"""

Kann ich nun einfach weitere Tabellen anfügen? etwa so:

Private Sub Import_VB_Click()

MsgBox "Sie löschen alle Inhalte der Tabellen! Nur bei Import betätigen!, vbCritical,Löschen der Tabelleninhalte "

CurrentDb().Execute "DELETE FROM cx_0002"""

CurrentDb().Execute "DELETE FROM cx_0003"""

CurrentDb().Execute "DELETE FROM cx_0004"""

Danke für die Hilfe.

Lg

Cubalaca

ich hab das wohl so verstanden, dass du automatisieren und nicht einfach mit TransferSpreadsheet importieren wolltest :upps

du hast doch beim aufruf der funktion

DoCmd.TransferSpreadsheet acImport, 8, "Tabelle1", _
den tabellennamen drinstehen. meinem verständnis nach kannst du hier ja die Nummer der tabelle einsetzen.
DoCmd.TransferSpreadsheet acImport, 8, "Tabelle" & Num, _
oder aber, wenn du 15 *separate* dateien hast, den dateinamen ersetzen:
"cx_000" & Num & ".xls"

natürlich müssten einstellige und zweistellige nummern richtig auf 2 stellen formatiert werden.

s'Amstel

Danke für deine Hilfe,

soweit funktioniert alles bestens!

Werde nun eine Tabelle nach der anderen in den code einfügen und testen ;)

Nochmals besten Dank!

lg

Cubalaca

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.