Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Import von Excel - Daten in Access per VBA

Forumthread: Import von Excel - Daten in Access per VBA

Import von Excel - Daten in Access per VBA
23.01.2003 23:22:53
Timo
Hallo zusammen

Kennt jemand eine Möglichkeit, mit Hilfe von VBA automatisiert Daten von Excel in eine (neue) Access Datenbank (Tabelle) zu übergeben ? Analog dazu sollte es auch möglich sein, dieses oder ein ähnliches Script so zu verwenden, daß man per Datei - Auswahl - Dialog in Access eine XLS - Datei öffnet, die dann in eine Access - Tabelle importiert wird. Prinzipiell suche ich also nach der Syntax zur Umwandlung der XLS - Felder in Access - Felder.

Freue mich über jede Antwort

Danke

Timo

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Import von Excel - Daten in Access per VBA
24.01.2003 00:41:50
Bernd Held
Hallo Timo,

das kannst Du beispielsweise über ADO machen. Der folgende Code überträgt eine exce-Tabelle Zeile für Zeile in eine Access-Datentabelle.

Sub DatenübernahmeNachAccess()
Dim ADOC As New ADODB.Connection
Dim DBS As New ADODB.Recordset

ADOC.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Eigene Dateien\Buchungen.mdb;"
DBS.Open "Veranstaltung", ADOC, adOpenKeyset, _
adLockOptimistic

Sheets("Veranstaltungen").Activate
Range("A2").Select

On Error GoTo fehler

Do Until ActiveCell.Value = ""
DBS.AddNew
DBS!Bdatum = ActiveCell.Value
DBS!Vdatum = ActiveCell.Offset(0, 1).Value
DBS!Veranstaltung = ActiveCell.Offset(0, 2).Value
DBS!V_Ort = ActiveCell.Offset(0, 3).Value
DBS!Teilnehmer = ActiveCell.Offset(0, 4).Value
DBS!Straße = ActiveCell.Offset(0, 5).Value
DBS!PLZ = ActiveCell.Offset(0, 6).Value
DBS!Ort = ActiveCell.Offset(0, 7).Value
DBS!Kosten = ActiveCell.Offset(0, 8).Value
If ActiveCell.Offset(0, 9).Value = "Ja" Then DBS!Bezahlt = True Else DBS!Bezahlt = False
DBS.Update
ActiveCell.Offset(1, 0).Select
Loop

DBS.Close
ADOC.Close
Set ADOC = Nothing
Set DBS = Nothing

Exit Sub
fehler:
MsgBox "Es trat ein Fehler auf!"
DBS.Close
ADOC.Close
Set ADOC = Nothing
Set DBS = Nothing
End Sub

Viele Grüße
Bernd
MVP für Microsoft Excel
Noch mehr Excel-Tipps und VBA-Datenbank unter: http://held-office.de

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel-Daten automatisch in Access importieren per VBA


Schritt-für-Schritt-Anleitung

Um eine Excel-Tabelle in Access zu importieren, kannst Du VBA (Visual Basic for Applications) nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Excel öffnen: Stelle sicher, dass Deine Excel-Datei geöffnet ist.
  2. Visual Basic Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.
  4. Code einfügen: Kopiere den folgenden Code und füge ihn in das Modul ein:

    Sub DatenübernahmeNachAccess()
       Dim ADOC As New ADODB.Connection
       Dim DBS As New ADODB.Recordset
    
       ADOC.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Eigene Dateien\Buchungen.mdb;"
       DBS.Open "Veranstaltung", ADOC, adOpenKeyset, adLockOptimistic
    
       Sheets("Veranstaltungen").Activate
       Range("A2").Select
    
       On Error GoTo fehler
    
       Do Until ActiveCell.Value = ""
           DBS.AddNew
           DBS!Bdatum = ActiveCell.Value
           DBS!Vdatum = ActiveCell.Offset(0, 1).Value
           DBS!Veranstaltung = ActiveCell.Offset(0, 2).Value
           DBS!V_Ort = ActiveCell.Offset(0, 3).Value
           DBS!Teilnehmer = ActiveCell.Offset(0, 4).Value
           DBS!Straße = ActiveCell.Offset(0, 5).Value
           DBS!PLZ = ActiveCell.Offset(0, 6).Value
           DBS!Ort = ActiveCell.Offset(0, 7).Value
           DBS!Kosten = ActiveCell.Offset(0, 8).Value
           If ActiveCell.Offset(0, 9).Value = "Ja" Then DBS!Bezahlt = True Else DBS!Bezahlt = False
           DBS.Update
           ActiveCell.Offset(1, 0).Select
       Loop
    
       DBS.Close
       ADOC.Close
       Set ADOC = Nothing
       Set DBS = Nothing
    
       Exit Sub
    fehler:
       MsgBox "Es trat ein Fehler auf!"
       DBS.Close
       ADOC.Close
       Set ADOC = Nothing
       Set DBS = Nothing
    End Sub
  5. Code anpassen: Ändere den Data Source-Pfad zu Deinem Access-Datenbankpfad.
  6. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus.

Mit diesem einfachen Script kannst Du Daten aus Deiner Excel-Tabelle in Access importieren. Du kannst auch den Dialog für die Dateiauswahl einbauen, um XLS-Dateien zu importieren.


Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des gültigen Bereichs": Dieser Fehler tritt auf, wenn Du versuchst, auf ein nicht vorhandenes Element in Deiner Excel-Tabelle zuzugreifen. Überprüfe, ob die aktiven Zellen korrekt und nicht leer sind.

  • Zugriffsverletzungen: Stelle sicher, dass Du über die erforderlichen Berechtigungen für den Zugriff auf die Datenbank verfügst.

  • Falscher Provider: Wenn Du eine neuere Version von Access nutzt, könnte der Provider für den OLEDB-Zugriff unterschiedlich sein. Verwende stattdessen Microsoft.ACE.OLEDB.12.0.


Alternative Methoden

Wenn Du Daten aus Excel in Access importieren möchtest, gibt es auch andere Methoden:

  1. Manueller Import: Du kannst Daten direkt in Access importieren, indem Du die Importfunktion in Access verwendest. Gehe zu Externe Daten > Excel und folge dem Assistenten.

  2. Power Query: Mit Power Query in Excel kannst Du Daten aus Access importieren und umgekehrt. Dies ist besonders nützlich für regelmäßige Datenaustausch-Tasks.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Nutzung des Codes:

  • Import von Teilnehmerdaten: Stelle sicher, dass Du die richtige Struktur in Deiner Excel-Tabelle hast, um Teilnehmerdaten korrekt zu importieren.
  • Automatisierung: Du kannst dieses Script so anpassen, dass es bei jedem Öffnen der Excel-Datei automatisch ausgeführt wird.

Tipps für Profis

  • Fehlerbehandlung: Baue eine umfassende Fehlerbehandlung in Deinen Code ein, um unerwartete Fehler besser zu managen.
  • Optimierung: Achte darauf, den Code zu optimieren, um die Performance zu verbessern, insbesondere bei großen Datenmengen.
  • Datenvalidierung: Führe eine Datenvalidierung durch, bevor Du Daten importierst, um sicherzustellen, dass keine fehlerhaften Daten in Deine Access-Datenbank gelangen.

FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Tabelle in Access importieren?
Du kannst eine Excel-Tabelle in Access importieren, indem Du VBA verwendest, wie im obigen Beispiel gezeigt. Alternativ kannst Du die Importfunktion in Access nutzen.

2. Was mache ich, wenn ich die Access-Datenbank nicht finden kann?
Stelle sicher, dass der Pfad zur Datenbank im VBA-Code korrekt ist. Du kannst auch den Windows-Dateiexplorer verwenden, um die Datei zu suchen.

3. Kann ich Daten mithilfe von VBA in Access aktualisieren?
Ja, Du kannst VBA verwenden, um Daten in Access sowohl zu importieren als auch zu aktualisieren. Verwende dafür die Update-Methode im Recordset.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige