PDA

Vollständige Version anzeigen : Spaltenüberschriften abfragen


daniele
27.10.2003, 10:51
Hallo

Ich möchte von einer tabelle dessen Spaltenüberschriften abfragen und in einer query-tabelle darstellen.
die anzahl spaltenüberschriften ist dabei variabel (und am liebsten sollen alle spaltennamen nach der vierten spalte abgefragt werden)

ich dachte es sei ganz banal, trotzdem kriege ich es nicht hin. ich glaube es müsste mit TRANSFORM gemacht werden können

kann mir jemand weiter helfen?

DarthPatrick
27.10.2003, 11:11
Hallo daniele,

bin mir nicht ganz sicher, was du vorhast ... vielleicht hilft dir dieser Code:
Sub ueberschriften()

Dim db As Database, tdf As TableDef, fld As Field
Set db = DBEngine(0)(0)
Set tdf = db.TableDefs("Tabelle1")

For Each fld In tdf.Fields
Debug.Print fld.Properties("Caption")
Next fld

End Sub
Die Spaltenüberschirften der Tabelle1 werden im Testfenster (Strg+G) ausgegeben. Mit ein paar Handgriffen kannst du den Code auch so anpassen, dass die Überschirften in eine Tabelle, Listenfeld o.ä. geschrieben werden.

HTH

daniele
27.10.2003, 12:16
soweit ok,

anstatt "Debug.Print fld.Properties("Name")" habe ich eine "append"-Query eingesetzt die die spaltenüberschriften in eine tabelle schreibt.

Set qdf = db.QueryDefs("Q_Append")
strSql = "INSERT INTO xEM_Gruppe (EMs) VALUES " & _
"('" & fld.Properties("Name") & "');"
qdf.SQL = strSql
db.Execute (strSql)

Nun möchte ich aber dass nur ab der 5. spalte die namen einlesen werden, zb mit einer WHERE-Klausel im sinne von:

Where FeldNummer > 5

wie würde die korrekte Syntax dafür lauten ? habe keine entsprechende Feld-Eigenschaft dafür gefunden.

Danke

daniele

DarthPatrick
27.10.2003, 12:47
Hallo daniele,

um erst ab der 6. Spalte die Überschriften ausgeben zu lassen würde ich einen Zähler integrieren, der bei jedem Durchlaufen um 1 hochgezählt wird.

In einem IF...END IF-Block kannst du prüfen, ob der Zähler >5 ist und dann die Anweisungen ausführen die die Spaltenname in die Tabelle schreiben.

Achtung: der Zähler muss außerhalb der IF...END IF-Anweisung hochgezählt werden - sonst wird er nie fertig ;)

daniele
27.10.2003, 13:10
Danke Patrick, Klappt hervorragend


gruss
Daniele