Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: SG05 am November 09, 2011, 19:38:19

Titel: UFO über VBA mit mehrere Kombinationsfelder
Beitrag von: SG05 am November 09, 2011, 19:38:19
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
Titel: Re: UFO über VBA mit mehrere Kombinationsfelder
Beitrag von: bahasu am November 09, 2011, 20:19:58
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
Titel: Re: UFO über VBA mit mehrere Kombinationsfelder
Beitrag von: Beaker s.a. am November 09, 2011, 22:47:48
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
Titel: Re: UFO über VBA mit mehrere Kombinationsfelder
Beitrag von: bahasu am November 10, 2011, 05:39:39
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
Titel: Re: UFO über VBA mit mehrere Kombinationsfelder
Beitrag von: SG05 am November 10, 2011, 19:10:52
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...
Titel: Re: UFO über VBA mit mehrere Kombinationsfelder
Beitrag von: SG05 am November 10, 2011, 19:12:43
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

Titel: Re: UFO über VBA mit mehrere Kombinationsfelder
Beitrag von: MzKlMu am November 10, 2011, 19:15:11
Hallo,
versuche es mal so:

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