Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Exceltabelle nach Access Datenbank exportieren ...

Forumthread: Exceltabelle nach Access Datenbank exportieren ...

Exceltabelle nach Access Datenbank exportieren ...
05.05.2017 13:16:47
Michael
Hallo,
kennt jemand von Euch eine einfache Möglichkeit den Tabelleninhalt eines Arbeitsblattes in eine Tabelle einer Access-Datenbank zu bringen, ohne Access starten zu müssen, also mit SQL ... was ich gefunden habe ist jede Zeile einzeln nach Access zu übertragen, ist halt sehr langwierig bei ~5000 Einträgen.
Bin froh um jeden Tipp wie ich es beschleunigen kann.
Danke
Michi
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exceltabelle nach Access Datenbank exportieren ...
05.05.2017 17:25:07
Zwenn
Hallo Michi,
zwar bin ich kein Access Kenner, aber das was Du als Teillösung beschreibst (eine Zeile pro Durchgang) klingt für mich, als muss man das in eine Schleife verpacken, die dann alle Zeilen durchrattert. Ist vielleicht etwas naiv gedacht. Aber poste doch mal bitte den Code, den Du bisher hast, um eine Zeile in eine Access Tabelle zu übertragen. Sonst wird hier vermutlich niemand etwas dazu sagen können.
Es ist auch unbekannt, wie Deine Daten in der Quelltabelle denn aussehen. Müssen da Fehler abgefangen werden und bist Du sicher, dass alle Zellen die richtigen Inhalte haben? Sowohl vom Inhalt her, wie auch vom Datenformat her.
Viele Grüße,
Zwenn
Anzeige
AW: Exceltabelle nach Access Datenbank exportieren ...
08.05.2017 09:16:26
Michael
Hallo Zwenn,
manchesmal sollte man einfach mal ein Wochenende abwarten, den Kopf frei kriegen, dannach klappt es auch mit der Suche im Netz besser.
Ich schreibe jetzt mal meine Lösung und lass mal meinen ehemeligen unsäglichen Versuch nicht näher erläutert ;-)
Den Code gibt es post scriptum.
Die Verbindung zu Datenbank ist über die Adodb.Connection 'cnDB' schon etabliert.
Ich leere erst die Tabelle der Datenbank und schreibe dann das komplette Arbeitsblatt "ExcelTransfer" der angegebenen Datei neu in die gleichnamige Access-Tabelle.
Wichtig dabei ist das die Arbeitsmappe Spaltenüberschriften hat, und die Felder in der Access-Tabelle genau so benannt sind.
Daher geht es dann auch problemlos mit dem ' SELECT *'
Vorher brauchte das Update durch die Lage der Datenbank auf einem Server und das Zeile für Zeile übertragen +-60 Sekunden.
Mit der jetzigen Lösung (siehe unten) bin ich nun bei max. 7 Sekunden :-D
Vielleicht kann es ja in der Zukunft jemand anderes gebrauche ;-)
Grüße
Michi

Sub ACCDB_ExcelTransfer(strFullPath As String)
Dim strSQL As String
If Dir(strFullPath) = "" Then
MsgBox "Exceldatei nicht gefunden" & vbCrLf & "'" & strFullPath & "'", vbCritical
Else
If ACCDB_Connect Then
' Leeren der Tabelle in der Datenbank
strSQL = "DELETE * FROM ExcelTransfer"
cnDB.Execute strSQL
' Tabelle komplett neu füllen
strSQL = "INSERT INTO ExcelTransfer SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" &  _
strFullPath & "].[ExcelTransfer$]"
cnDB.Execute strSQL
End If
End If
End Sub

Anzeige
AW: Exceltabelle nach Access Datenbank exportieren ...
08.05.2017 15:39:20
Zwenn
Hallo Michi,
na das ist doch super, dass Du es nun gelöst hast. Manchmal hat man wirklich einen Knoten im Kopf. Danke, dass Du Deine Lösung hier für die Allgemeinheit zur Verfügung stellst.
Viele Grüße,
Zwenn
;
Anzeige
Anzeige

Infobox / Tutorial

Excel-Daten effizient in eine Access-Datenbank exportieren


Schritt-für-Schritt-Anleitung

  1. Erstelle die Verbindung zur Access-Datenbank
    Nutze die ADODB.Connection, um eine Verbindung zu deiner Access-Datenbank herzustellen. Stelle sicher, dass du die richtigen Verbindungsparameter verwendest.

  2. Leere die Ziel-Tabelle in Access
    Verwende den SQL-Befehl DELETE um die vorhandenen Daten in der Access-Tabelle zu löschen. Dadurch wird sichergestellt, dass du die Tabelle mit frischen Daten befüllst.

    strSQL = "DELETE * FROM ExcelTransfer"
    cnDB.Execute strSQL
  3. Übertrage die Daten aus Excel in Access
    Nutze den SQL-Befehl INSERT INTO, um die Daten von deinem Excel-Arbeitsblatt in die Access-Tabelle zu übertragen. Achte darauf, dass die Spaltenüberschriften in Excel mit den Feldnamen in Access übereinstimmen.

    strSQL = "INSERT INTO ExcelTransfer SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & strFullPath & "].[ExcelTransfer$]"
    cnDB.Execute strSQL
  4. Fehlerbehandlung
    Füge eine Fehlerbehandlung hinzu, um sicherzustellen, dass du benachrichtigt wirst, falls die Excel-Datei nicht gefunden wird.

    If Dir(strFullPath) = "" Then
       MsgBox "Exceldatei nicht gefunden" & vbCrLf & "'" & strFullPath & "'", vbCritical
    End If

Häufige Fehler und Lösungen

  • Excel-Datei nicht gefunden
    Überprüfe den Pfad zur Excel-Datei und stelle sicher, dass die Datei existiert.

  • Zugriffsprobleme
    Wenn du keinen Zugriff auf die Datenbank hast, überprüfe die Berechtigungen und stelle sicher, dass die Datenbank nicht schreibgeschützt ist.

  • Spaltenüberschriften stimmen nicht überein
    Überprüfe die Spaltenüberschriften in deinem Excel-Blatt und die Feldnamen in der Access-Tabelle. Sie müssen exakt übereinstimmen.


Alternative Methoden

  • Access-Datenbank in Excel exportieren
    Wenn du die Daten aus Access in Excel ziehen möchtest, kannst du die Export-Funktion in Access verwenden, um die Daten direkt in eine Excel-Datei zu exportieren.

  • VBA-Formular erstellen
    Erstelle ein VBA-Formular, um die Eingaben zu erleichtern und eine Benutzeroberfläche für den Importprozess zu bieten.


Praktische Beispiele

  • Beispiel für die Übertragung von 5000 Datensätzen
    Mit dem oben beschriebenen VBA-Skript kannst du schnell eine große Anzahl von Datensätzen (z.B. 5000) aus einer Excel-Tabelle in eine Access-Datenbank übertragen. Dies reduziert die Zeit für den Export erheblich.

  • VBA-Skript für den Export von Access-Daten in Excel
    Wenn du Access-Daten in Excel exportieren möchtest, kannst du ein einfaches VBA-Skript verwenden, um die Daten aus einer Access-Tabelle in eine Excel-Tabelle zu übertragen.


Tipps für Profis

  • Automatisierung
    Nutze VBA-Skripte, um den Prozess der Datenübertragung zu automatisieren. Dies spart Zeit und minimiert menschliche Fehler.

  • Optimierung der Datenbank
    Achte darauf, dass die Access-Datenbank gut strukturiert ist, um die Effizienz beim Datenimport zu erhöhen.

  • Regelmäßige Backups
    Stelle sicher, dass du regelmäßige Backups deiner Datenbank machst, insbesondere vor dem Import neuer Daten.


FAQ: Häufige Fragen

1. Wie kann ich die Datenbankverbindung in VBA herstellen?
Du kannst die ADODB.Connection-Klasse verwenden, um eine Verbindung zu deiner Access-Datenbank herzustellen. Achte darauf, die richtige Verbindungszeichenfolge zu verwenden.

2. Was mache ich, wenn die Excel-Datei zu groß ist?
Wenn die Excel-Datei sehr groß ist, kannst du die Daten zuerst in kleinere Abschnitte aufteilen oder nur die notwendigen Daten exportieren. Alternativ kannst du auch die Datenbankstruktur optimieren, um effizientere Abfragen zu ermöglichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige