PDA

Vollständige Version anzeigen : WhereConditions mit mehreren Kriterien


Moerio
19.04.2011, 13:09
Hallo,
mit folgendem Code filtere ich einen Bericht vor.
Angezeigt werden alle Teilegruppen die in einem Listenfeld markiert werden.

Dim Element As Variant
Dim Bedingung As String
Dim IDPartGroupPK As Variant

'Ist überhaupt ein Eintrag markiert?
If Me!lstDatensätze.ItemsSelected.count > 0 Then

'Bedingung zusammenstellen
For Each Element In Me!lstDatensätze.ItemsSelected
IDPartGroupPK = Me!lstDatensätze.ItemData(Element)
Bedingung = Bedingung & "IDPartGroupPK = " & IDPartGroupPK & " OR "
Next Element

'Rechtes OR abschneiden (Aua!)
Bedingung = Left(Bedingung, Len(Bedingung) - 4)

DoCmd.OpenReport ReportName:="CapPerPartPerProcess%", WhereCondition:=Bedingung, View:=acPreview

Else
MSGBOX "Bitte mindestens eine Teilgruppe auswählen.", vbOKOnly + vbInformation + vbDefaultButton1, "Teilgruppen Auswahl"

End If

Wie kann ich erreichen das ich noch ein weiteres Kriterium hinzugefügt bekomme.
Ich würde gerne das Feld "Auslastung" (Prozentwertfeld) als zusätzliches Kriterium angeben.

Dazu habe ich in meinem Formular zwei ungebundene textfelder "Prozentvon" und "Prozentbis".

Kann mir da jemand helfen?
Danke

Atrus2711
19.04.2011, 13:24
Hi,

die Bedingugn müsste dann noch erweitert werden:


'....
Bedingung = Left(Bedingung, Len(Bedingung) - 4)

If Len(NZ(Me!Prozentvon)) > 0 Then
Bedingung = "(" & Bedingung & ") AND Auslastung >= " & Me!Prozentvon
End If

'Obergrenze analog

Moerio
20.04.2011, 07:20
Hi,

schon mal Danke für die Hilfe.
Wenn ich Dich nicht hätte. :)

Jetzt hab ich nur das Problem das ich einen Syntaxfehler bekomme.

Laufzeitfehler '3075'
Syntaxfehler(Komma) in Abfrageausdruck '((IDPartGroupPK=1) And Auslastung
>=0,1)'.
Irgendwie schein er sich an dem Komma bei 0,1 zu stören.

Gruß
Moerio

Atrus2711
20.04.2011, 07:56
Yep. Dezimalzeichen in VBA und SQL ist der Punkt. Dein Komma kannst du aber mit Str() in Punkt wandeln.

Moerio
28.04.2011, 13:26
Hallo,
Kann ich denn If Len(NZ(Me!Prozentvon))
direkt mit Str() umformatieren?
Ich hab es jetzt über Hilfsvariablen gemacht.
Sieht aber nicht besonders schön aus.:)

Gruß
Moerio

Atrus2711
28.04.2011, 13:27
If Len(NZ(Me!Prozentvon)) > 0 Then
Bedingung = "(" & Bedingung & ") AND Auslastung >= " & Str(Me!Prozentvon)
End If