# Access Abfragen mittels VB kopieren.



## wine-e (1. Dezember 2003)

Hallo,

ich habe ein Problem.
Ich lasse mir eine Tabelle in einer beliebigen Access-Datenbank erstellen.
Es gibt aber Abfragen, welche auf diese Tabelle angewendet werden sollen. Nur diese Abfragen sind in einer anderen Datenbank. Wie kann ich auf diese Abfragen zugreifen oder sie mir am besten in die Datenbank mit der erstellten Tabelle kopieren.

Danke schonmal im vorraus.

gruß
wine-e


----------



## ANI (1. Dezember 2003)

hallo wine-e,

auf Abfragen kann man zugreifen wie auf Tabellen.

Du kannst diese auch mit einem Recordset aktivieren und ausführen lassen.

Ich werde dir aber noch genauer mitteilen, wie dies funktioniert und ein Beispiel-Code zusenden.

ANI


----------



## wine-e (2. Dezember 2003)

Das wäre sehr freundlich.

Wäre gut wenn ich das Bsp. heute noch bekommen könnte, da ich das Projekt spätestens am Freitag abgeben muss.
Und ich auch noch nen bisschen an der Form basteln.

gruß
wine-e


----------



## ANI (2. Dezember 2003)

hallo wine-e,

Abfragen würde ich grundsätzlich nicht in die aktuelle Datenbank kopieren. Lass ruhig die Abfrage extern in einer anderen Datenbank.

Hier die Funktion zum Zugriff auf Abfragen in externen Datenbanken:

Public Function GetAbfrage(DatenbankPfad As String, AbfrageName As String) As String

    Dim WSQ As DAO.Workspace
    Dim DBQ As DAO.Database
    Dim qtbl As DAO.QueryDef

    Set WSQ = DBEngine(0)
    Set DBQ = WSQ.OpenDatabase(DatenbankPfad, False, False)

    For Each qtbl In DBQ.QueryDefs
        If qtbl.Name = AbfrageName Then
            GetAbfrage = qtbl.SQL
            Exit For
        End If
    Next qtbl

End Function

Der Rückgabewert ist der SQL-String der Abfrage. Dieser kann dann direkt in deinem Programm für den Execute-Befehl weiter verarbeitet werden.

Wundere dich nicht darüber, das ich überall 'DAO' beim Anmelden der Variablen davorgeschrieben habe. In der Praxis hat sich gezeigt, daß ich damit auf der sicheren Seite liege, wenn ich verschiedene Verweise in Access oder VB eingerichtet habe (z.B. ODBC, DAO usw.).

ANI


----------



## wine-e (2. Dezember 2003)

Ich habe mir hier nun alle Abfragen zu nem Riesen Makro zusammengebastellt.
Wie geht den der Zugrifff auf ein Makro. Dann ist das nicht soviel Code hoffe ich doch mal.


----------



## wine-e (2. Dezember 2003)

Also ich habe nun einfach eine Kopie der  erstellten Datei mit in die DB wo die Abfragen liegen gelegt und führe dadrauf die Abfragen aus.
Nun muss ich nur noch die Tabelle mit den Ergebnissen in die andere DB bekommen. Wie stelle ich dies an, da ich der Tabelle keine Variable, etc zuweise im code.


----------



## ANI (4. Dezember 2003)

hallo wine-e,

so direkt kann ich Dir auch nicht sagen, wie man Module der Form in eine andere Datenbank-Form überträgt.

Ich lege Dir mal eine Textdatei anbei, dort wird beschrieben, wie du ein Modul bearbeiten kannst.

ANI


----------

