Datentyp im Formular bestimmen

29/06/2009 - 11:22 von Martin Köster | Report spam
Hallo zusammen.

Wenn man im Formular ein Feld hat und wissen möchte, welchen Datentyp es
hat,
wie geht ihr daran?

Ich möchte in einem beliebigen Formular entscheiden können, ob ein Feld
varchar(4000) ist oder nicht.
Dabei sollen als RecordSource des Formulars sowohl Tabellen als auch
Abfragen zugelassen sein.

Habt Ihr da eine Idee?

Habe jetzt schon ordentlich mit QueryDefs und TableDefs gespielt, aber bei
QueryDefs komme ich irgendwie
nicht ans Ziel...

Vielen Dank für Eure Hilfe im voraus.

Schöne Grüße
Martin Köster
 

Lesen sie die antworten

#1 Henry Habermacher
29/06/2009 - 11:51 | Warnen spam
Hallo Martin

Martin Köster wrote:
Wenn man im Formular ein Feld hat und wissen möchte, welchen Datentyp es
hat,
wie geht ihr daran?

Ich möchte in einem beliebigen Formular entscheiden können, ob ein Feld
varchar(4000) ist oder nicht.



Das tönt nach SQL Server, in Jet würde sowas Memo heissen.

Dabei sollen als RecordSource des Formulars sowohl Tabellen als auch
Abfragen zugelassen sein.



Grundsàtzlich solltest Du vom Formular das Recordset anschauen. Das hat eine
Fields Collection. Das Control (Textbox) selber ist über die ControlSource
wohl an ein Field der Fields Collection gebunden und wird daher in der
ControlSource den gleichen Namen drin haben, wie das Field im Recordset (es
sei denn, es sei berechnet oder leer).
Anhand des FieldTypes und der FieldSize kannst Du nun herausfinden, was es
ist. Nur eben: Felder vom typ dbText haben keine FieldSize, Felder vom Typ
dbMemo geben das gerade passende zurück.

Wenn Du ein SQL Server im Hintergrund hast, gehst Du über die SourceTable
des Fields und dem Field.Name besser über eine Abfrage auf die SysColumns
und SysObjects auf dem Server. In den SysColumns solltest Du dann fündig
werden.

Gruss
Henry


Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen