PDA

Vollständige Version anzeigen : Modul als kriterium in abfragen


S.Remmers
09-13-2007, 12:44 PM
Hallo zusammen,

ich habe folgende Problem:

Es gibt das folgende Modul:

Public Function fctSendVarArtikel() As Variant

fctSendVarArtikel = "123456"

End Function

Das Ergebnis der fctSendVarArtikel, also 123456, soll als Kriterium in
einer Abfrage verwendet werden.

Das funktioniert leider nicht. Wenn ich die Funktion als
Ausdr1:fctSendVarArtikel() verwende wird allerdings 123456 korrekt
angezeigt.

Kann mir jemand sagen, wie die Funktion auch als Kriterium verwenden
kann?

Danke und Gruss
Süntke

Bernd Heumann
09-13-2007, 01:06 PM
S.Remmers wrote:

> Hallo zusammen,
>
> ich habe folgende Problem:
>
> Es gibt das folgende Modul:
>
> Public Function fctSendVarArtikel() As Variant
>
> fctSendVarArtikel = "123456"
>
> End Function
>
> Das Ergebnis der fctSendVarArtikel, also 123456, soll als Kriterium in
> einer Abfrage verwendet werden.
>
> Das funktioniert leider nicht. Wenn ich die Funktion als
> Ausdr1:fctSendVarArtikel() verwende wird allerdings 123456 korrekt
> angezeigt.
>
> Kann mir jemand sagen, wie die Funktion auch als Kriterium verwenden
> kann?
>
> Danke und Gruss
> Süntke

'funktioniert leider nicht' ist leider eine nicht sehr aussagekräftige
Fehlerbeschreibung.

Im Prinzip funktioniert dein Vorhaben sehr wohl.
Allerdings liefert obige Fkt einen String zurück.
select * from deineTab where deinTextFeld=fctSendeArtikel()
müsste also eigentlich klappen.

Ich mutmaße mal dass Du die FKt als Kriterium für ein Zahlenfeld
verwenden willst?


Dann solltest Du die Funktion entsprechend definieren:
Public Function fctSendVarArtikel() As Long
fctSendVarArtikel = 123456
End Function

Dann geht:
select * from deineTab where ID=fctSendeArtikel()

Gruß
Bernd

--
FAQ: http://www.donkarl.com

Henry Habermacher
09-13-2007, 01:32 PM
Hallo S.

voller Realname wird hier gerne gesehen. Danke

S.Remmers wrote:
> ich habe folgende Problem:

Das ist eine Aufgabe, kein Problem ;-)

> Es gibt das folgende Modul:
Das ist eine Funktion, kein Modul. Ist wie mit dem Zimmer und dem Haus ;-)


> Public Function fctSendVarArtikel() As Variant
> fctSendVarArtikel = "123456"
> End Function

> Das Ergebnis der fctSendVarArtikel, also 123456, soll als Kriterium in
> einer Abfrage verwendet werden.

Nein das Ergebnis der Funktion ist "123456" nicht 123456. Da gibt es
bestimmte Unterschiede zu beachten. Strings werden nicht gleich behandelt
wie Zahlen. Um Strings herum brauchts ein Stringbegrenzungszeichen (' oder
"). Um Zahlen herum nicht.

> Das funktioniert leider nicht. Wenn ich die Funktion als
> Ausdr1:fctSendVarArtikel() verwende wird allerdings 123456 korrekt
> angezeigt.

> Kann mir jemand sagen, wie die Funktion auch als Kriterium verwenden
> kann?

Genau gleich. Schalte in die SQL Ansicht um und gib dort:
WHERE ArtikelNr = fctSendVarArtikel
als Where Klausel ein. Danach kannst Du sehen, was der Abfrageeditor daraus
in der graphischen Ansicht gemacht hat.

Oder gib dort
=fctSendVarArtikel()

ein.

Gruss
Henry


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