PDA

Vollständige Version anzeigen : datensätze per fomular filtern


mborti
28.08.2001, 19:18
ich habe eine datenbank und will nun die möglichkeit schaffen das ein benutzer über ein formular nur bestimmte datensätze angezeigt bekommt (ähnlich dateien suchen im explorer)

Danke für Eure Hilfe!

nestea
29.08.2001, 07:10
morgen,

hab ich dich richtig verstanden?
du willst, daß wenn ein bestimmtes formular aufgerufen wird, nur ganz bestimmte datensätze angezeigt werden?

wenn dem so ist, machst du das mit einem filter.

man nehme mal an, du hast eine tabelle mit name, adresse, alter.
du möchtest jetzt nur alle datensätze angezeigt bekommen mit personen, deren name mit "H" beginnt.
dann machst du das folgendermaßen:

dein formular, daß deine datensätze anzeigen soll hast du schon erstellt.
bei eigenschaften des formulars schreibst du unter filter

[Name] LIKE "H*"

so, damit hast du den filter erstellt.
damit die gefilterten daten beim öffnen erscheinen, mußt du noch eine ereignisprozedur in das formuar einbinden, und zwar unter "beim öffnen"

der code lautet:

Private Sub form_open(cancel as integer)
Me.FilterOn = True
End Sub

so müßte es funktionieren.

:) nestea :)

toja
29.08.2001, 10:08
@nestea
hallo, du scheinst dich ja mit filtern sehr gut auszukennen. ich hab dazu nämlich auch noch mal eine frage: wie stelle ich es denn ein, wenn ich allgemeiner suchen will; ich also die suchoptionen immer wieder neu bestimmen will, z.b einmal alle namen, die mit 'H*' anfangen, ein anderes mal aber vielleicht mit'B*', 'C*' oder sogar alle Personen die mit Nachnamen 'Maier' heißen usw. ich habe das nämlich schon via menüleiste (auswahlbasierter filter) versucht. eigenartigerweise funktioniert das bei mir nicht immer (??)
Viele Grüße toja

nestea
29.08.2001, 11:24
hi toja,

da hast du nicht so ganz recht. hab das mit den filtern gerade erst heute morgen gelernt. habe aber trotzdem eine lösung für dich.

du erstellst zum beispiel ein neues formular[form_kriterium], in die du dein kriterium eingeben kannst.
so z.b.
alle namen mit b --> b*
alle namens maier --> maier

dazu fügst du in das formular ein ungebundenes textfeld ein. das nennst du z.b. [kriterium]

jetzt schreibst du in deinen filter anstatt
[name]LIKE "H*"
--> [name] LIKE [forms]![form_kriterium]![kriterium]

wenn du in dein formular [form_kriterium] jetzt noch eine befehlsschaltfläche einbaust, mit der du das formular öffnest, in der die nach deiner wahl getroffenen datensätze angezeigt werden, wäre eigentlich alles okay.

zur befehlsschaltfläche:
folgender code bietet sich bei ereignis "beim klicken" an

Private Sub

"NAmeDeinerBefehlsscahltfläche"_Click()
'natürlich ohne die anführungszeichen

Me.FilterOn = Not Me.FilterOn

DoCmd.OpenForm "deinFormDasDeineGefiltertenWerteAnzeigenSoll"
'hier die anführungszeichen mitschreiben
End Sub

hoffe, dir geholfen zu haben ;)
ciao nestea