Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

mit VBA "erstellte" Abfrage öffnen





Frage

Hallo! Ich möchte Abfrageergebnisse exportieren. Bis jetzt habe ich immer erst die Abfrage geöffnet, dann ein Makro gestartet welches das Menu EXPORTIEREN aufruft und dann die Abfrage wieder geschlossen: docmd.openquery "Abfrage1" docmd.runmacro"Exportieren" docmd.close acquery, "Abfrage1" Klappt auch prima. Aber jetzt habe ich eine Abfrage über VBA "erstellt". Das heißt, sie existiert als solche unter "Abfragen" nicht. Kann ich so eine irgendwie öffnen, (mir die Ergebnisse anzeigen lassen) um meinen oben beschriebenen Weg zu gehen? Oder kennt jemand eine ganz andere Lösung? Vielen Dank im Voraus. MfG, Ole.

Antwort 1 von Marie

um eine Abfrage in excel zu exportieren muss man sie doch nicht öffnen??

wandle doch das makro mal in vba um und schick den code, der würde mich mal interessieren.

Antwort 2 von Ole

Mein Makro beinhaltet einfach das Aufrufen des Menüpunktes "Exportieren".
Wenn ich direkt über VBA exportiere muss ich einen Zielpfad eingeben. Der soll aber manuell ausgewählt werden. Und über das Menü "Exportieren" öffnet sich ja der nette Verzeichnisbaum.
Wenn ich nun also das Makro benutze, exportiert Access das/die aktuell geöffnete Formular/Abfrage.
Daher muss ich die Abfrage vorher öffnen.

Gruß, Ole.

Antwort 3 von erik

Es ist unsinnig, für den Export die Abfrage zunächst zu öffnen und sie hinterher wieder zu schließen. Wenn du schon das Makro benutzen willst, dann lege in dessen Eigenschaften auch noch die Abfrage fest, die exportiert werden soll. Dann stellt sich nicht mehr die Frage, was zu exportieren ist.

Stelle nur die beiden Eigenschaften "Objekttyp" und "Objektname" ein auf "Abfrage" und <Name der Abfrage>.

Antwort 4 von Ole

Mein Makro besteht aus dem Punkt: "AusführenBefehl". Und dort habe ich dann "Exportieren" gewählt. Da kann ich nirgens angeben, was exportiert werden soll. Außerdem habe ich viele verschiedene Abfragen, die exportiert werden sollen. Dann müßte ich ja auch genauso viele Makros erstellen.

Stell ich mich zu dämlich an?

Antwort 5 von erik

Ich ging davon aus, dass du die Makro-Aktion "AusgabeIn" verwendest. Wenn du nicht mehrere Makros anlegen willst, dann verlagere alles nach VBA. Das dortige Äquivalent ist die DoCmd.OutputTo-Anweisung.

Antwort 6 von Ole

Das alles hilft mir leider auch nicht weiter. Das mit OutPutTo klappt zwar wunderbar, allerdings exportiert Access dann alles formatiert.
(Wenn man über Menü "Exportieren" geht, kann man das auswählen.)
Aber mein eigentliches Problem ist damit ja auch nicht gelöst. [Wie kann ich einen SQL-Ausdruck exportieren?]

Gruß, Ole.

Antwort 7 von erik

Hm, mit dem Formatieren könntest du Recht haben. Dann schau dir DoCmd.TransferText für Textdateien bzw. DoCmd.TransferSpreadsheet für Exceldateien an, dort hast du etwas mehr Einfluss auf die Formatierung. In beiden Fällen kannst du Abfragen als Quelle angeben.

Antwort 8 von Ole

Das ist ja alles schön und gut. Aber das hat nicht viel mit meinem Problem zu tun.
Ich geh noch mal ein bißchen ins Detail:
Mein Problem ist, dass ich keine Abfrage als solche habe. Ich habe nur einen SQL-String.
Da meine "Abfrage" von Mal zu Mal unterschiedlich viele und auch unterschiedliche Spalten beinhalten soll, kann ich nur mit VBA einen SQL-String basteln.
Diesen lasse ich mir dann per <Liste.RowSource> in einem Listenfeld anzeigen.
Mir kann also entweder geholfen werden, wenn jemand weiß, wie ich das doch in einer normalen Abfrage realisieren kann, oder wenn es eine Möglichkeit gibt à la:
 SQLstr="..."
export SQLstr


Trotzdem danke bis dahin.

Antwort 9 von erik

Dann musst du eben die "normale" Abfrage erzeugen. Lege dazu eine beliebige Abfrage an, egal mit welchem Inhalt. Speichere Sie mit einem passenden Namen. Anschließend kannst du jederzeit den inneliegenden SQL mit folgendem Code aktualisieren:

Public Sub TempAbfrage(SQL As String)
Dim db As Database
dim qdf as QueryDef

Set db=CurrentDb
set qdf=db.QueryDefs("<Abfragename>")
qdf.SQL = SQL
qdf.Close

Set qdf = Nothing
Set db = Nothing
Exit Sub

Antwort 10 von Ole

SUUUUUPER!!!!
Recht vielen Dank. Wieviele Befehle es doch gibt, die man noch nicht kennt!
Du warst eine sehr große Hilfe.

Ganz herzliche Grüsse

Ole

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: