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

SQL in VBA zur Access Abfrage

Forumthread: SQL in VBA zur Access Abfrage

SQL in VBA zur Access Abfrage
04.03.2004 18:25:12
arash
Hi,
ich möchte mittels einer SQL Abfrage in Excel-VBA aus meiner Access DB Daten nach Excel importirien.
ich habe sowohl einen Prjojekt Verweis auf Microsoft ActiveX Data Objects 2.7 Library, als auch auf Microsoft ActiveX Data Objects Recordset 2.7 Library gesetzt und dann in Modul, ´folgenden Code hinterlegt:

Sub holen()
Dim db As Database
Dim rs As Recordset
Dim ber As String
Set db = OpenDatabase("C:\test.mdb") 'Datenquelle
Sql = "SELECT auto,typ FROM autos" 'SQL Select
Set rs = db.OpenRecordset(Sql)
Sheets("Tabellenblatt1").Cells(1, 1).CopyFromRecordset rs  'Datenziel
End Sub


Was muß ich noch zusätzlich machen?!? Fehlermeldung ist zu Zeit "Benutzerdefinioerter Typ nicht definiert".
DANKE
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SQL in VBA zur Access Abfrage
04.03.2004 18:44:55
Dieter Klemke
Hallo arash,
du verwendest die DAOs, hast aber einen Verweis auf die moderneren ADOs gesetzt.
Nimm die beiden vorhandenen Verweise wieder weg und setze einen Verweis auf "Microsoft DAO 3.x Object Library"
MfG
Dieter
AW: SQL in VBA zur Access Abfrage
04.03.2004 18:50:10
arash
ICH DANKE DIR!!!!
ES KLAPPT UND ICH BIN HAPPY!!!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

SQL in VBA zur Access Abfrage


Schritt-für-Schritt-Anleitung

Um eine SQL-Abfrage in Excel VBA zur Abfrage von Daten aus einer Access-Datenbank auszuführen, folge diesen Schritten:

  1. Verweise setzen: Stelle sicher, dass du die richtigen Verweise gesetzt hast. Entferne alle Verweise auf ADO und setze stattdessen einen Verweis auf die "Microsoft DAO 3.x Object Library".

  2. VBA-Editor öffnen: Öffne den VBA-Editor in Excel mit ALT + F11.

  3. Modul hinzufügen: Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" klickst und dann "Einfügen" > "Modul" auswählst.

  4. Code einfügen: Füge den folgenden Code in dein Modul ein:

    Sub holen()
       Dim db As DAO.Database
       Dim rs As DAO.Recordset
       Dim Sql As String
    
       Set db = OpenDatabase("C:\test.mdb") 'Datenquelle
       Sql = "SELECT auto, typ FROM autos" 'SQL Select
       Set rs = db.OpenRecordset(Sql)
       Sheets("Tabellenblatt1").Cells(1, 1).CopyFromRecordset rs  'Datenziel
    End Sub
  5. Code ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Daten in dein Excel-Arbeitsblatt zu importieren.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Benutzerdefinierter Typ nicht definiert": Diese Fehlermeldung tritt auf, wenn du die falschen Verweise gesetzt hast. Stelle sicher, dass du einen Verweis auf die "Microsoft DAO 3.x Object Library" gesetzt hast.

  • Datenbank kann nicht geöffnet werden: Überprüfe den Pfad zur Datenbank. Stelle sicher, dass der Pfad korrekt ist und die Datei existiert.


Alternative Methoden

Falls du die Daten auf andere Weise importieren möchtest, kannst du auch ADO verwenden. Hier ist ein Beispiel, wie du eine SQL-Abfrage mit ADO durchführen kannst:

Sub ADO_Holen()
    Dim conn As Object
    Dim rs As Object
    Dim Sql As String

    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb;"

    Sql = "SELECT auto, typ FROM autos"
    Set rs = conn.Execute(Sql)

    Sheets("Tabellenblatt1").Cells(1, 1).CopyFromRecordset rs
    rs.Close
    conn.Close
End Sub

Praktische Beispiele

Ein einfaches Beispiel zur Abfrage Access erstellen könnte so aussehen:

Sub AbfrageErstellen()
    Dim db As DAO.Database
    Set db = OpenDatabase("C:\test.mdb")

    db.Execute "CREATE TABLE neueTabelle (ID AUTOINCREMENT, Name TEXT(50))"
    db.Close
End Sub

Diese Abfrage erstellt eine neue Tabelle in der Access-Datenbank.


Tipps für Profis

  • Nutze Parameterabfragen, um Daten dynamisch zu filtern. Das verbessert die Flexibilität deiner SQL-Abfragen.

  • Vermeide es, Daten direkt aus Access zu ändern, wenn du nur Daten abfragen möchtest. Halte deine Abfragen sauber und effizient.

  • Dokumentiere deinen Code gut, besonders wenn du komplexe SQL-Abfragen verwendest, um später leichter Änderungen vornehmen zu können.


FAQ: Häufige Fragen

1. Wie kann ich eine SQL-Abfrage in Excel VBA ausführen? Du kannst eine SQL-Abfrage in Excel VBA ausführen, indem du die DAO- oder ADO-Bibliotheken verwendest. Stelle sicher, dass du die richtigen Verweise gesetzt hast.

2. Was ist der Unterschied zwischen DAO und ADO? DAO ist speziell für Microsoft Access optimiert, während ADO eine breitere Datenbankunterstützung bietet. Wähle entsprechend deiner Anforderungen.

3. Wie kann ich eine SELECT-Abfrage in VBA erstellen? Du erstellst eine SELECT-Abfrage, indem du den SQL-Befehl in einer Variablen speicherst und dann mit der OpenRecordset-Methode ausführst.

4. Kann ich Daten in Access mit VBA ändern? Ja, du kannst Daten in Access mit VBA ändern, indem du UPDATE- oder INSERT-Anweisungen in deiner SQL-Abfrage verwendest.

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