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

Forumthread: Daten aus Access per VBA importieren

Daten aus Access per VBA importieren
14.08.2014 10:58:56
Kai
Hallo,
ich habe im Internet nach einem Beispiel gesucht, mit dem ich per VBA in Excel Daten aus Access importieren kann (eine komplette Tabelle die nicht sonderlich groß ist)
Hintergrund ist der, dass ich jemand Daten aus Acccess zur Verfügung stellen will, der aber kein Access hat und die Daten nachher eh in excel weiter verarbeitet weden.
Darum aus Excel der Import aus Access. (der User sol sich die daten bei bedarf HOLEN)
Nachdem ich nichts passendes gefunden habe, habe ich das ganze mit dem Makro Rekorder versucht. Das Problem dabei, die Access Datenbank ist mit einem Passwort gesichert.
Während der Aufzeichnung werde ich auch nach dem Passwort gefragt, dies wird aber im Makrorekorder nicht mit aufgezeichnet. Im Parameter PASSWORD ist dann im VBA Code einfach ein leerer String ( "" ).
Wenn ich nach der Aufzeichnung das Makro ausführe, werde ich , trotz dass ich vorher im VBA Code bei PASSWORD hinterlegt habe, trotzdem wieder nach dem Passwort gefragt.
Das ist natürlich nicht das, was ich wollte.
Hat jemend vielleicht ein einfaches Beispiel, mit dem ich aus Excel heraus eine Tabelle aus Access importieren kann, auch wenn dies mit einem Passwort versehen ist ?
Danke mal
Kai

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Du könntest es mal so...
14.08.2014 11:30:18
Case
Hallo, :-)
... versuchen:
DAO - Accessdatenbank - Daten auslesen...
Für das Passwort musst Du folgende Zeile...
Set objDBank = CreateObject(strDAO).OpenDatabase _
(ThisWorkbook.Path & Application.PathSeparator & strMDBFile)
... so abändern:
Set objDBank = CreateObject(strDAO).OpenDatabase _
(ThisWorkbook.Path & Application.PathSeparator & strMDBFile, False, False, "MS Access;pwd=test")
"test" natürlich auf Dein Passwort ändern.
Servus
Case

Anzeige
AW: Du könntest es mal so...
14.08.2014 12:21:34
Kai
Hallo Case,
Danke, das funktioniert wunderbar mit meiner Datenbank. Auch das mit dem Passwort.
noch eine Frage: kann ich in der Zeile, wo die DB geöffnet wird, nicht statt eines Pfades
Set db = ws.OpenDatabase ("C:\Daten\Northwind.mdb", False, False, "MS Access;PWD=northwind")
auch eine URL eingeben, zB:
Set db = ws.OpenDatabase ("https:/ecs.Sharepoint/Northwind.mdb", False, False, "MS Access;PWD=northwind")
Da kommt es dann zu einer Fehlermeldung (kein zulässiger Dateiname)
Ich würde meine DB gerne auf einem sharePoint öffnen.
Danke
Kai

Anzeige
AW: Du könntest es mal so...
14.08.2014 13:44:58
Kai
Hallo Case,
also, an der Berechrigung kann es nicht liegen, ich griefe noch anderweilig auf den Sharepoint zu, das funktioniert. Der Pfad sowei der Dateiname sind auch richtig.
Wie aus deinen Links hervorgeht, war man sich über die Schreibweise eines solchen Pfades auch nicht sicher, mit "/" oder "\". ich habe alle Kombinationen durchgestetest. nichts funktioniert.
egal wie man den Pfad schreibt
https://ecs.Sharepoint/Northwind.accdb
https:/ecs.Sharepoint/Northwind.accdb
https:\\ecs.Sharepoint\Northwind.accdb
mit "https:" und ohne.
war das mit der Schreibweise eine Vermutung oder siehst du in meinem Beispiel wirklich einen Fehler ?
Gruß
Kai

Anzeige
In dem Fall...
15.08.2014 08:16:52
Case
Hallo, :-)
... kann ich nur vermuten, da ich kein Sharepoint habe und es somit nicht testen kann.
Servus
Case

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten aus Access per VBA in Excel importieren


Schritt-für-Schritt-Anleitung

Um Daten aus Access in eine Excel-Tabelle zu importieren, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (DeinWorkbookName)" > Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:

    Sub ImportAccessData()
       Dim conn As Object
       Dim rs As Object
       Dim strSQL As String
    
       ' Access-Datenbank und Passwort
       Set conn = CreateObject("ADODB.Connection")
       conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Daten\Northwind.accdb;Jet OLEDB:Database Password=test;"
    
       ' SQL-Abfrage
       strSQL = "SELECT * FROM DeineTabelle"
    
       ' Recordset öffnen
       Set rs = CreateObject("ADODB.Recordset")
       rs.Open strSQL, conn
    
       ' Daten in Excel importieren
       Sheets("Tabelle1").Range("A2").CopyFromRecordset rs
    
       ' Objekte schließen
       rs.Close
       conn.Close
       Set rs = Nothing
       Set conn = Nothing
    End Sub
  5. Ändere den Pfad zur Access-Datenbank und die SQL-Abfrage entsprechend Deiner Daten.

  6. Drücke F5, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Problem: "Ich werde nach dem Passwort gefragt, obwohl ich es im Code angegeben habe."

    • Lösung: Stelle sicher, dass Du das Passwort in der Verbindungszeichenfolge korrekt angibst, wie im obigen Beispiel gezeigt.
  • Problem: "Ich kann die Access-Datenbank nicht über eine URL öffnen."

    • Lösung: Access benötigt den lokalen Pfad, um die Datei zu öffnen. URLs sind oft nicht zulässig. Überprüfe die Schreibweise und Berechtigungen, wenn Du auf SharePoint zugreifst.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Funktion "Daten abrufen" in Excel verwenden:

  1. Gehe zu Daten > Daten abrufen > Aus Datenbank > Aus Microsoft Access-Datenbank.
  2. Wähle die Access-Datenbank aus und gib das Passwort ein.
  3. Wähle die gewünschte Tabelle aus und importiere die Daten.

Diese Methode ist besonders nützlich, wenn Du häufig Daten importieren möchtest und auf VBA verzichten willst.


Praktische Beispiele

Hier ist ein Beispiel, wie Du Daten aus der Northwind-Datenbank importieren kannst:

Sub ImportNorthwindData()
    Dim conn As Object
    Dim rs As Object
    Dim strSQL As String

    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Daten\Northwind.accdb;Jet OLEDB:Database Password=northwind;"

    strSQL = "SELECT * FROM Customers"

    Set rs = CreateObject("ADODB.Recordset")
    rs.Open strSQL, conn

    Sheets("Tabelle1").Range("A2").CopyFromRecordset rs

    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
End Sub

Mit diesem Skript kannst Du die gesamte Customers-Tabelle in Deine Excel-Tabelle importieren.


Tipps für Profis

  • Nutze Parameter in SQL-Abfragen, um die Effizienz zu steigern. Statt SELECT * kannst Du gezielt Spalten angeben.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Deinen VBA-Code, um Probleme bei der Verbindung oder beim Import zu erkennen und zu beheben.
  • Automatisiere den Import: Du kannst das Makro so planen, dass es regelmäßig ausgeführt wird, um aktuelle Daten zu erhalten.

FAQ: Häufige Fragen

1. Kann ich Daten aus einer CSV-Datei in Access importieren?
Ja, Du kannst eine CSV-Datei in Access importieren, indem Du die Importfunktion in Access verwendest oder über VBA.

2. Welche Dateiendungen unterstützen Access?
Access unterstützt verschiedene Dateiendungen wie .mdb und .accdb für Datenbanken.

3. Wie kann ich Daten aus Access in eine Excel-Tabelle importieren, wenn die Datenbank mit einem Passwort gesichert ist?
Du kannst das Passwort in der Verbindungszeichenfolge angeben, wie im Schritt-für-Schritt-Beispiel gezeigt.

4. Gibt es eine Möglichkeit, Access-Daten direkt in Excel zu aktualisieren?
Ja, Du kannst VBA verwenden, um die Daten regelmäßig zu importieren und zu aktualisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige