Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Syntaxfehler Komma

Begonnen von SG05, April 07, 2015, 12:48:12

⏪ vorheriges - nächstes ⏩

SG05

Hallo zusammen,

habe ein Problem bei Selektieren in einem UFO.
Folgende Zeilen sollen die HRDicke filtern:

Public Sub Auswahl01()
Dim strkrit As String
Dim HRDicke As Double

If Not IsNull(Forms!For_HR_Bestand!HRDicke) Then strkrit = strkrit & " and [HRDicke] = " & Forms!For_HR_Bestand!HRDicke
If Len(strkrit) > 0 Then strkrit = Mid(strkrit, 6)

Forms!For_HR_Bestand!For_HR_Bestand_1.Form.Filter = strkrit
Forms!For_HR_Bestand!For_HR_Bestand_1.Form.FilterOn = True
End Sub

Bei HRDicken wie 2,00 klappt es, aber bei 2,50 kommt eine Fehlermeldung "3075" ( Syntaxfehler Komma in Abfrageausdruck).
Gebe ich 2.50 ein, wird 25,00 im Auswahlfeld angezeigt.

Das Feld in der Tabelle und Formular ist als Double / Festkommazahl mit zwei Dezimalstellen angelegt.

Erbitte Eure Hilfe.....


MaggieMay

Hallo,

setze die Str-Funktion ein, um das Komma SQL-tauglich in einen Dezimalpunkt zu verwandeln:
If Not IsNull(Forms!For_HR_Bestand!HRDicke) Then strkrit = strkrit & " and [HRDicke] = " & Str(Forms!For_HR_Bestand!HRDicke)

BTW:
Wenn HRDicke ein Formularfeld ist, so ist die Deklaration der Variablen gleichen Namens überflüssig.
Freundliche Grüße
MaggieMay

SG05

Danke MaggieMay,

eine weiter Lösung benötige ich für einen Bereich zwischen zwei HRDicken:

If Not IsNull(Forms!For_HR_Bestand!HRDicke) Then strkrit = strkrit & " and [HRDicke] Between " & Str(Forms!For_HR_Bestand!HRDicke1) & " and " & Str(Forms!For_HR_Bestand!HRDicke2)

zeigt einen Syntaxfehler....

Danke für die Unterstützung

DF6GL

Hallo,

in der Codezeile gibt es keinen Syntax-Fehler...

Wann kommt die Fehlermeldung? Beim Kompilieren im VBA-Editor oder bei der Ausführung des mit dem Kriterium zusammengebauten SQL-Strings?

MaggieMay

Hi,

wozu dient das erste " and "?

ZitatIf Not IsNull(Forms!For_HR_Bestand!HRDicke) Then strkrit = strkrit & " and [HRDicke] Between " & Str(Forms!For_HR_Bestand!HRDicke1) & " and " & Str(Forms!For_HR_Bestand!HRDicke2)
Du solltest besser die neuen Textfelder prüfen...
Freundliche Grüße
MaggieMay