PDA

Vollständige Version anzeigen : Bei Selektion in Abfrage: "Datentypen in Kriterienausdruck unverträglich"


s_p_0_0_k_y
22.01.2008, 10:23
Hi,
ich habe in einer Abfrage eine Spalte mit folgendem Inhalt:

Platz: Teil([EVt_AB_BSCU];InStrRev(Links([EVt_AB_BSCU];InStrRev([EVt_AB_BSCU];"/")-1);"/")+1;InStrRev([EVt_AB_BSCU];"/")-InStrRev(Links([EVt_AB_BSCU];InStrRev([EVt_AB_BSCU];"/")-1);"/")-1)

In der Spalte EVt_AB_BSCU um die es da geht stehen nur Zeichenketten drin wie diese: 56/09/005/01/003, 56/09/006/07/004, 52/04/101/28/002

Als Ergebnis liefert die Spalte Platz: 01, 07, 28

Jetzt versuche ich in der Abfrage auf die Spalte Platz zu selektieren und gebe unter Kriterien folgendes ein:

1 => Datentypen in Kriterienausdruck unverträglich (logisch da es sich um einen String handelt)
"01" => Datentypen in Kriterienausdruck unverträglich (kapier ich nicht)
Wie "01" => funktioniert (kapier ich schon garnicht)

Wenn ich die Abfrage ausführe und dann mit der Maus eine Auswahlbasierte selektion mache kommt auch: "Datentypen in Kriterienausdruck unverträglich"

ich habe auch schon versucht bei der Spalte "Platz" ein cint bzw cstr voranzusetzen... hat aber auch nicht geholfen.

Wieso funktioniert es nur, wenn ich ein Wie vor den zu selektierenden String stelle?

Ich kapiere es einfach nicht...


Mfg
Alex

Bracki
22.01.2008, 10:37
Hallo Alex,

nun Dein Ergebnis hat einen alphanumerischen Wert der dann irgendwo in der Zeichenkette stehen kann. Also ist die Abfrage nach einem Teilstring mit "wie" schon richtig.

s_p_0_0_k_y
22.01.2008, 11:38
ne,

die Spalte EVt_AB_BSCU beinhaltet so etwas: 56/09/005/01/003, 56/09/006/07/004, 52/04/101/28/002


Diese Spalte wird hier benutzt:
Platz: Teil([EVt_AB_BSCU];InStrRev(Links([EVt_A.....

um aus der Zeichenkette nur einen Teil herauszuschneiden. Undzwar in den o.g. Beispielen: 01, 07, 28

d.h. wenn ich nun die Abfrage ausführe stehen in der Spalte Platz nur die Werte 01, 07, 28 und nicht mehr die ganze zeichenkette.


Selbst wenn es so währe wie du meintest hätte ich Wie "*01*" schreiben müssen und nicht Wie "01"

oder ?

Mfg
Alex

Unreg5
22.01.2008, 11:48
Vielleicht sind fehlerhafte Verweise in VBA vorhanden (entfernen).

Die Funktion "Teil" liefert einen Variant, also sollte es egal sein, ob der Filter eine Zahl oder Text ist.

Die String-Variante wäre "Teil$".

Falls [EVt_AB_BSCU] mal keine "/" enthält, dann ist es nicht so gut für die Funktion nStrRev.

Sicherheitshalber ein "/" vor dem Feld setzen .....

..... "/" & [EVt_AB_BSCU] .....