Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Klaus S. aus B am Februar 17, 2014, 15:41:06

Titel: Filtern mit * für Integer Feld
Beitrag von: Klaus S. aus B am Februar 17, 2014, 15:41:06
Hallo zusammen,

ich hänge mal wieder fest.

Kann ich einen Filter mit "*" für ein Zahlenfeld definieren?
Konkret habe ich eine Liste mit Projektnummern (5stellig). Diese möchte ich filtern und zwar so, dass er die in ein Texfeld eingegebenen Werte (z.B. 3 Stellen) nimmt und alle Projekte anzeigt, die mit diesen 3 Stellen beginnen.

Geht das überhaupt?

Gruß
Klaus
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Hondo am Februar 17, 2014, 16:38:36
Hallo,
verwende doch einfach die Funktion left():
... WHERE Left(Projektnummern, 3)=123

Gruß Andreas
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Klaus S. aus B am Februar 17, 2014, 16:52:55
Hallo Hondo,

vielen Dank, aber wie sieht das das mit der Me.filter Funktion aus? ???

Me.Filter = "[PN] where " & Left([PNFilt], 2)
Me.FilterOn = True


...funktioniert mal nicht.

Gruß
KLaus
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Hondo am Februar 17, 2014, 17:04:45
Me.Filter = "left([PN],3)=123"

123 musst du halt entsprechend abändern, je nach dem das Feld lautet wo du die 3-Stellige Zahl eingibst.
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Klaus S. aus B am Februar 17, 2014, 17:14:02
Super, klappt!

Danke!
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Klaus S. aus B am Februar 17, 2014, 17:43:50
...jetzt habe ich gedacht, jetzt hätte ich eine elegante Lösung, aber die funktioniert nicht.

Dim anz As Integer

anz = Len(PNFilt)

Me.Filter = "Left([PN],anz)=" & [PNFilt]
Me.FilterOn = True

Ich dachte mir, ich könnte die Anzahl der eingegebenen Stellen auslesen und das in den Filter mit einbauen. Funktioniert aber nicht.

Wo ist mein Fehler?

Gruß
Klaus
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: MzKlMu am Februar 17, 2014, 18:05:33
Hallo,
beschreibe mal, was Du da überhaupt vorhast.
Ich kann in dem Code keinen rechten Sinn enddecken.
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Hondo am Februar 17, 2014, 22:06:39
Versuchs mal so:
Me.Filter = "Left([PN],anz)= [PNFilt]"
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: DF6GL am Februar 17, 2014, 22:27:13
Hallo,

"Ich dachte mir, ich könnte die Anzahl der eingegebenen Stellen auslesen und das in den Filter mit einbauen. "


auch die Frage:  Was soll das bedeuten?
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Klaus S. aus B am Februar 18, 2014, 08:51:50
Hallo zusammen,

also ich habe mir folgendes gedacht:

Ich habe ein Endlosformular, in dem die Projketnummern aufgelistet sind (...damit sie einer "Klammer" zugeordnet werden können [normalerweise nicht notwendig, da diese Zuordnung automatisch erfolgt für neu angelegte PNs, ich habe aber eine Latte "importierter" PNs, für die erst später einer Klammer erstellt wird und die man dann noch zuordnen können muss]).
Es kann jetzt sein, dass mehrere PNs einer Klammer zugeordnet werden sollen, deshalb wäre ein "intelligenter" Filter interessant, bei dem ich die ersten Stellen der PN angeben kann und die Liste dann übersichtlicher wird.
Jetzt kann es sein, dass man nur die ersten ein oder zwei Stellen der PN eingeben muss, um eine übersichtliche Liste zu bekommen, mal muss man 4 Stellen eingeben, damit die Liste übersichtlich wird.

Jetzt war mein Gedanke, dass man die Anzahl der Stellen, die in der left() Funktion definiert werden, einfach über eine Variable erschlägt. Den Wert der Variable erhält man durch Ermitteln der Anzahl eingegebener Stellen in das Filterfeld.
Aber das funktioniert irgendwie nicht.

Kann man den Gedankengang verstehen?

Gruß
Klaus
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Klaus S. aus B am Februar 18, 2014, 08:56:39
Zitat von: Hondo am Februar 17, 2014, 22:06:39
Versuchs mal so:
Me.Filter = "Left([PN],anz)= [PNFilt]"

...klappt auch nicht.
Bei meinem Code bekomme ich ein Eingabefeld für "anz", anscheinend erkennt er die Variable nicht wieder.
Bei o.g. Code bekomme ich zwei Parameter Eingabefelder: "anz" und "PNFilt".

Gruß
Klaus
Titel: Re: Filtern mit * für Integer Feld
Beitrag von: DF6GL am Februar 18, 2014, 09:13:00
Hallo,

(als exorbitante Ausnutzung der internen Datentypen-Konvertierungen    ;D ;) )

Dim anz As Integer

anz = Len(PNFilt)

Me.Filter = "Left([PN]," & anz & " =" & Me![PNFilt]  '<edit>
Me.FilterOn = True



Zitat
Diese möchte ich filtern und zwar so, dass er die in ein Texfeld eingegebenen Werte (z.B. 3 Stellen) nimmt und alle Projekte anzeigt, die mit diesen 3 Stellen beginnen:

Vorschlag:


Me.Filter = "CStr([PN])  like '" & [PNFilt] & "*'"
Me.FilterOn = True


Titel: Re: Filtern mit * für Integer Feld
Beitrag von: Klaus S. aus B am Februar 18, 2014, 09:40:05
Super, beide Varianten funktionieren. Wieder was gelernt.

Gruß
Klaus