Tabelle erstellt durch Tabellenerstellungsabfrage - aber welche?

09/05/2008 - 11:15 von Lisa Glonegger | Report spam
Hallo,

ich wollt fragen ob es möglich ist, anhand einer Tabelle die
dazugehörige Tabellenerstellungsabfrage herauszufinden?

Ich glaubs zwar nicht, dass es geht, aber es wàr echt toll wenn jemand
einen Trick kennt. ;-)
Die Datenbank ist leider zu umfangreich, um jede Abfrage anzuklicken
und zu schaun, welche Tabelle sie erzeugt.


Vielen Dank,
Elisabeth Glonegger
 

Lesen sie die antworten

#1 Thomas Winkler
09/05/2008 - 11:29 | Warnen spam
Hi,

ich wollt fragen ob es möglich ist, anhand einer Tabelle die
dazugehörige Tabellenerstellungsabfrage herauszufinden?

Ich glaubs zwar nicht, dass es geht, aber es wàr echt toll wenn jemand
einen Trick kennt. ;-)
Die Datenbank ist leider zu umfangreich, um jede Abfrage anzuklicken
und zu schaun, welche Tabelle sie erzeugt.



Also on-the-fly ist mir da keine Variante bekannt - und ich halte es
auch logisch für ausgeschlossen. Es könnten ja mehrere Abfragen
existieren die einunddieselbe Tabelle erstellen. Welche war's denn nun?
Würde zu einer Tabelle die Erstellungsabfrage hinterlegt, wàre es
hingegen wieder inkonsistent, wenn Du wieder was an der
Erstellungsabfrage ànderst.

Ein bissl behelfen kannst Du Dir aber. MSysobjects enthàlt alle Objekte
deiner DB, als auch Erstellungsabfragen. Du könntest also die
entsprechenden Queries dort in ein recordset einlesen, dieses dann
durchiterieren und .SQL auf das Vorkommen des fraglichen Tabellennamens
bzw. Spaltennamen prüfen.

Würde in etwa so aussehen... (Aircode)

dim rst as dao.recordset
dim qdf as dao.querydef

set rst = currentdb.openrecordset("SELECT Name FROM MSysObjects WHERE
(Flag Or <Nummer>) = <Nummer>")
'Hier muss Nummer durch einen bestimmten Wert ersetzt werden,
'Der die Abfrage als Tabellenerstellungsabfrage markiert.
'Den kann ich Dir momentan nicht sagen, aber vllt.
'kann das einer der MVPS tun. Ich könnte das heute Abend nachreichen.

While not rst.eof
set qdf = currentdb.querydefs(rst("Name"))
if instr(qdf.sql, "DeinTabellenname") Then
debug.print rst("Name) & " könnte es gewesen sein!"
else
debug.print rst("Name) & " war's wahrscheinlich nicht!"
end if
rst.movenext
wend

qdf.close
set qdf = nothing

rst.close
set rst = nothing

HTH


Thomas

"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."

Ähnliche fragen