Ich möchte gerne per VBA eine Abfrage erstellen, die dann unter 'Abfragen'
im Datenbankfenster sichtbar wird.
Ich habe also einen String mit der SQL Abfrage ("SELECT Kunden.[Kunden-ID],
BLZ.Bezeichnung, BLZ.Ort...."), die ich gerne unter einem bestimmten Namen
in Access XP ablegen möchte.
Das brauche ich deshalb, weil die Tabellennamen auf die sich die Abfragen
stützen, wechseln können (Verknüpfungen).
Danke im voraus
Peter
am einfachsten erstellst du die Abfragen einmal per Hand und änderst
dann per Code den SQL-Code:
set qdf=currentdb.Querydefs("DeineAbfrage")
qdf.SQL="SELECT ....."
set qdf = nothing
HTH Jürgen
Peter Sander schreibselte:
Die QueryDefs-Auflistung sollte Dir helfen. <F1>
Dieser kannst Du per Append eine neue Abfrage anfügen.
alternativ kannst Du CreateQueryDef verwenden.
Du kannst einer bestehenden Abfrage auch jederzeit
einen neuen SQL-String zuweisen.
schau Dir dazu die SQL-Eigenschaft des QueryDef-Objektes
an.
Beispiele in der OH
HTH
Gruß
On Tue, 20 Apr 2004 15:14:39 +0200, Peter Sander wrote:
> Ich möchte gerne per VBA eine Abfrage erstellen, die dann unter 'Abfragen'
> im Datenbankfenster sichtbar wird.
>
> Ich habe also einen String mit der SQL Abfrage ("SELECT Kunden.[Kunden-ID],
> BLZ.Bezeichnung, BLZ.Ort...."), die ich gerne unter einem bestimmten Namen
> in Access XP ablegen möchte.
With CurrentDB
.CreateQueryDef "QDF_Name", "SELECT Kunden.[Kunden-ID], ..."
.QueryDefs.Refresh
End With
Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
"Peter Sander" <pedde...@gmx.de> schrieb im Newsbeitrag
news:c637u3$5pk$03$1...@news.t-online.com
manchmal hilft es, wenn man einfach mal die Postings dieser NG liest.
Gerade mal vorgestern hatten wir hier die Frage von Axel Janßen mit dem
doch eigentlich ziemlich verständlichen Betreff
"Abfrage"objekt" per VBA erstellen und löschen"
Naja, lieber die anderen tippen lassen als selber mal zu lesen: ist auch
'ne Lösung.
mfg,
Michel
Statt Abfragen auf eingebundene Tabellen zu setzen, kannst Du auch
sofort Tabellen in der fremden Datenbank abfragen, z.B.
SELECT * FROM [Tabelle1] In 'C:\Eigene Dateien\Andere.MDB'
Das spart Dir das Einbinden von wechselnden Tabellen.
Gruß, Ralf.
On Tue, 20 Apr 2004 21:09:36 +0200, Ralf Pfeifer wrote:
> Statt Abfragen auf eingebundene Tabellen zu setzen, kannst Du auch
> sofort Tabellen in der fremden Datenbank abfragen, z.B.
>
> SELECT * FROM [Tabelle1] In 'C:\Eigene Dateien\Andere.MDB'
>
> Das spart Dir das Einbinden von wechselnden Tabellen.
BTW - das geht auch per ...
SELECT * FROM [C:\path\myDB.mdb].myTable
Hab' allerdings nie geprüft, ob es Performanceunterschiede gibt ...
Bis dann,
Olaf [MVP]
--
Bitte keine emails auf NG-postings.
My .02: www.Resources.IntuiDev.com
Ich denke ich werde mein Problem mit QueryDef lösen können. Es gibt ja
Situationen (oder Kreationen von Tabellen) wo man zwei Abfragen benötigt um
zum Ergebnis zu gelangen. Dabei basiert eine Abfrage auf einer anderen
Abfrage. Und das habe ich mit "Select..." von Hand nicht auf die Kette
bekommen bzw. das scheint mit einem einzigen Select-String nicht zu gehen.
Zudem liegen die Tabellen, denen ich ein paar Daten entlocken möchte in
einer externen mySql, die ich per ODBC anspreche.
Zu guter letzt können dort die Tabellennamen noch variieren.
Habe übrigens festgestellt, dass man externe Tabellen per ODBC mit dem
Originalnamen einbinden, dann aber einfach umbenennen kann ohne dass die
Verbindung zu den Tabellen verloren geht.
Ich erstelle mir also eine Verbindung zu den Tabellen (stelle damit fest,
wie diese heißen) und baue dann per Programm die beiden Abfragen neu. Neu
deshalb, weil Access die Feldnamen der Abfragen beim wechsel der
Tabellenvernüfungen in 'Ausdr.1: [Feldname]' ändert.
Ich hoffe ich habe jetzt kein wirres Zeug geschildert...
Trotzdem Danke nochmal. Ich teste mal und berichte dann. Amerika wurde auch
nur über Umwegen endeckt :-)
Tschö
Peter Sander
"Peter Sander" <pedde...@gmx.de> schrieb im Newsbeitrag
news:c637u3$5pk$03$1...@news.t-online.com...
> BTW - das geht auch per ...
> SELECT * FROM [C:\path\myDB.mdb].myTable
>
> Hab' allerdings nie geprüft, ob es Performanceunterschiede gibt ...
Sehr interessant! Das werde ich mal probieren, ich baue mir die
Abfragen öfter selbst im Code zusammen. Mit der Version
könnte es ein wenig übersichtlicher gehen.