Neuigkeiten:

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

Mobiles Hauptmenü

UFO über VBA mit mehrere Kombinationsfelder

Begonnen von SG05, November 09, 2011, 19:38:19

⏪ vorheriges - nächstes ⏩

SG05

Hallo zusammen,

folgender Code, an mein HFO angepasst, aus dem Forum läuft bei mir nicht ( Fehlermeldung "Datentyp.... unverträglich ):

Private Sub MeinButton_Click()
On Error GoTo Err_MeinButton_Click

Dim strkrit As String

If Not IsNull(Me!Lokation) Then strkrit = strkrit & " and [Lokation] ='" & Me!Lokation & "'"
If Not IsNull(Me!Branche) Then strkrit = strkrit & " and [Branche] ='" & Me!Branche & "'"

If Len(strkrit) > 0 Then strkrit = Mid(strkrit, 6)

Me!F_Auftragsübersicht_Anzeigen_1.Form.Filter = strkrit
Me!F_Auftragsübersicht_Anzeigen_1.Form.FilterOn = True

Exit_MeinButton_Click:
    Exit Sub

Err_MeinButton_Click:
    MsgBox Err.Description
    Resume Exit_MeinButton_Click
   
End Sub

Frage 2, ist diese Art erweiterbar auf z.B. 4 oder 5 Kriterien?

Danke für die Hilfe

bahasu

#1
N'abend,

an welcher Stelle tritt der Fehler auf?
Sind alle Kriterien als TEXT deklariert?

Wird wohl nicht die Ursache sein, aber ich bevorzuge es, Variablen anfangs auf einen definierten Wert zu setzen: also strkrit = ""

Weitere Kriterien sind machbar.

Harald
Servus

Beaker s.a.

Hallo Harald, hallo SG05,

Zitat
an welcher Stelle tritt der Fehler auf?

Wahrscheinlich hier:
If Not IsNull(Me!Lokation) Then strkrit = strkrit & " and [Lokation] ='" & Me!Lokation & "'"

Unter der Voraussetzung, das Me!Lokation ein Kombifeld ist, wird da wohl die gebundene Spalte (ID?) nicht vom Typ String sein.
Die wird aber mit Me!Lokation per Standardeigenschaft (Value) zurückgegeben. Wenn das so ist, musst Du entweder die ' wegmachen, oder mit Me!Lokation.Column(n) auf die Lokation zugreifen, - n ist dann die sichtbare Spalte (0-basiert).

Zitat
Frage 2, ist diese Art erweiterbar auf z.B. 4 oder 5 Kriterien?

Warum nicht? Wird IMO nur durch die maximale Länge des Filterstrings beschränkt (weiss aber nicht wie lang der sein darf, und bin jetzt auch zu faul zum Suchen)

Zitat
aber ich bevorzuge es, Variablen anfangs auf einen definierten Wert zu setzen: also strkrit = ""

Mach' ich auch; ist aber nicht nötig, da Dim as String die Variable IMO automatisch mit einem Leerstring initialisiert.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

bahasu

Moin,

in http://www.access-o-mania.de/forum/index.php?topic=14991

hattest Du Me!Ufo_1.Form.Filter = "[Lokation]= " & 4 verwendet.
Lokation ist kein String, also:
If Not IsNull(Me!Lokation) Then strkrit = strkrit & " and [Lokation] = & Me!Lokation

Harald
Servus

SG05

Danke hat super geklappt.

Gerne möchte ich auch Bereiche abfragen:

If Not IsNull(Me!Umssatz) Then strkrit = strkrit & " and [Umsatz] = & ">" & Me!Lokation

oder

If Not IsNull(Me!Umssatz) Then strkrit = strkrit & " and [Umsatz] = & > Me!Lokation

laufen nicht...

SG05

habe mich verschrieben:

If Not IsNull(Me!Umsatz) Then strkrit = strkrit & " and [Umsatz] = & ">" & Me!Lokation

oder

If Not IsNull(Me!Umsatz) Then strkrit = strkrit & " and [Umsatz] = & > Me!Lokation


MzKlMu

Hallo,
versuche es mal so:

If Not IsNull(Me!Umsatz) Then strkrit = strkrit & " and [Umsatz] > " & Me!Lokation
Gruß Klaus