Zum Inhalt dieser Seite

2.5 Bezug auf Spalte eines Kombinationsfeldes

Wenn man sich in einer Abfrage auf eine bestimmte Spalte eines Kombinationsfeldes beziehen möchte und deshalb ein Kriterium wie

=[Formulare]![frmLieferscheine]![cboPosition].[column](2)

verwendet, so erhält man beim Ausführen der Abfrage eine Fehlermeldung, die ungefähr so lautet:

Zitat

Undefinierte Funktion '[Formulare]![frmLieferscheine]![cboPosition].[column]' in Ausdruck.

Dieses Problem umgeht man mit der folgenden Funktion, die man in ein globales Modul einfügt. Das Modul muss beim Speichern anders als die Funktion benannt werden (s. auch Anleitung auf DBWiki):

Public Function fctComboCol(strForm As String, _
                            strCombo As String, _
                            intCol As Integer)
 
'Aufruf in SQL-Ansicht einer Abfrage oder in VBA mit:
'fctComboCol("NameDesFormulars","NameDesKombiFeldes",Spalte)
 
'Aufruf in Entwurfsansicht einer Abfrage mit:
'fctComboCol("NameDesFormulars";"NameDesKombiFeldes";Spalte)
 
fctComboCol = Forms(strForm)(strCombo).Column(intCol)
 
End Function
 

Die Funktion ist anschliessend als Kriterium einsetzbar. Bezogen auf das obige Beispiel muss das Kriterium in der Entwurfsansicht (nicht zu verwechseln mit der SQL-Ansicht, in der die Semikola durch Kommata ersetzt werden müssen!) einer Abfrage so aussehen:

=fctComboCol("frmLieferscheine";"cboPosition";2)

Übrigens wird mit diesem Beispielkriterium auf die 3. Spalte des Kombinationsfeldes verwiesen, da Column - wie fast alle Auflistungen - bei 0 anfängt.

Home