Neuigkeiten:

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

Mobiles Hauptmenü

Filter in Access / VBA

Begonnen von voipfreak, Oktober 25, 2011, 13:05:50

⏪ vorheriges - nächstes ⏩

voipfreak

Hallo zusammen,

ich muss meinen Tread vom September noch einmal auffrischen  :D


Ich habe eine Art Kundenverwaltung, die ich mir in MS Access erstellt habe.
Die kunden haben Festgelegte Tätigkeitsfelder damit man Sie Ihren Bereichen zuordnen kann.

Die Tätigkeitsbereiche die ich durchsuchen möchte ( insgesamt 5 ) sollen alle nach dem eingebenen Suchbegriff
durchsucht werden und dann nur die zutreffenden Datensätze angezeigt werden.


Ich habe nun ein Textfeld mit der (test) bezeichnung Text300 angelegt / Eigenschaft : Nach Aktualisierung: Ereignisprozedur.

Hier habe ich folgendes eingetragen:


Private Sub Text300_AfterUpdate()
Me.Filter = "Tätigkeit1 LIKE '*" & Me!Text300 & "*'" _
& "Or (Tätigkeit2 LIKE '*" & Me!Text300 & "*')" _
& "Or (Tätigkeit3 LIKE '*" & Me!Text300 & "*')" _
& "Or (Tätigkeit4 LIKE'*" & Me!Text300 & "*')" _
& "Or (Tätigkeit5 LIKE'*" & Me!Text300 & "*')"

Me.FilterOn = True
End Sub

Es sollen die Felder ( im gleichen Formular ) Tätigkeit1,2,3,4,5 durchsucht werden.

Wenn ich jetzt einen suchbegriff eingebe, sucht er aber nurin Tätigkeit 1 und verlangt für die anderen Felder einen suchbegriff.

Ich hoffe ich hab alles verständlich erklärt..



Kann mir hier jemand helfen ?

Vielen Dank im voraus.


Gruß Voipfreak

MzKlMu

Hallo,
falsche Tabellenstruktur. Du brauchst eine Tabelle für die Tätigkeitsfelder und ein Tabelle für die Zuordnung Tätigkeitsfeld => Kunde.
Die Felder Tätigkeit1 - 5 entfallen ersatzlos.

Das ist eine klassische n:m Beziehung für die 3 Tabellen notwendig sind.

Die gewüschte Abfrage bezieht sich dann nur auf ein feld.
Gruß Klaus

voipfreak

Hi MzKlMu,

danke ersmal für deine schnelle Antwort.
Ich habe eine Tabelle wo die Tätigkeitsfelder drin stehen diese werden dann in die kundentabelle
importiert ( Über ein Formular mittels Dopdown )

Gruß


Voipfreak

MzKlMu

Hallo,
dann brauchst Du noch eine Tabelle zur Zuordnung. Jede Zuordnung gibt einen Datensatz.
Diese 5 Felder für Tätigkeitsfelder entfallen dann ersatzlos.
Gruß Klaus

voipfreak

grrr ich verzweifle noch. MzKlMu ich brauche deine Hilfe  :P

Ich schnall dass nicht so ganz. mit der dritten tabelle.

Zu meiner Struktur:

1 Tabelle in der ALLE Daten des Kunden gespeichert werden
1 Detail Formular in der ich die Daten eingeben kann ( hier sind übrigens die Dropdown felder )
1 Formular in der alle Datensätze ( also Kunden ) auftauchen. ( Hier soll die Suche erfolgen ) 
1 Tabelle in der vordeffinierte Tätigkeiten hinterlegt sind.

Ich möchte also in dem Formular in der alle Datensätze engezeigt werden alle Tätigkeitsfelder durchsuchen.

Wie und wo muss ich jetzt eine weitere Tabelle hinzufügen.


Danke dir 1000 mal für deine Hilfe


Gruß

Voipfreak

MzKlMu

Hallo,
schaue Dir mal den Link an, dann wird es möglicherweise verständlicher.

Microsoft Access Tips for Casual Users

Die Studenten sind Deine Kunden, Sport wäre das Tätigkeitsfeld und StudentSport die 3. Tabelle die bei Dir KundeTätigkeit heisen sollte.
Gruß Klaus

voipfreak

man o man ich hasse access  :D

habe mir mal die Beispiel DB runter geladen.
Das problem ist dass mir das alles zu hoch ist. ich bekomm es nicht hin dass die dritte tabelle die Daten aus der Tätigkeiten und Kunden liste übernimmt. Habe die beziehungen auch gesetzt wie beschrieben. man o man


MzKlMu

Hallo,
dan lade hier mal hoch, was Du hast. Mit einigen anonymen Datensätzen.
Gruß Klaus

voipfreak

o super danke dir lade sie heute mittag mal hoch.


voipfreak

soo. habe die db mal hochgeladen.

Danke dir MzKlMu  für deine Hilfe

Gruß Voipfreak

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
anbei mal die überarbeitet DB.
Schaue Dir die Beziehungen an. Öffne das Formular "Institutsdetails", darin befindet sich ein Unterformular in dem Du die Tätigkeiten auswählen kannst, beliebig viele nicht nur 5, oder halt nur einen.

Aber:
Die ganze DB ist noch eine ziemliche Baustelle.
Wieso hat ein Institut Vor und Nachnamen und sogar ein Geburtsdatum?
Du nennst das Tätigkeiten, das Feld heist aber Beruf.
Das sollte von der Namensgebung her schon einigermaßen logisch sein.
Hier sind mit ziemlicher Sicherheit noch weitere Tabellen notwendig.

Verzichte in Feldnamen auf Sonder und Leerzeichen, nur Buchstaben und den Unterstrich.

[Anhang gelöscht durch Administrator]
Gruß Klaus

voipfreak

Hey danke schon einmal für deine Mühe und deine Kritik. Bin immer offen für einen A.. tritt ( nur so lernt man  ::) )

Ich habe jetzt nur das Problem, dass ich nicht in die Liste reinkomme
dass heisst ich kann die Datensätze nur über die Tabelle sehen.

Kannst du mir da noch einen Tipp geben

lg

MzKlMu

Hallo,
welche Liste?

Was ist mit meinen Hinweisen/Fragen?
Gruß Klaus

voipfreak

#13
Ich hatte einige Daten gelöscht damit es ein wenig übersichtlicher wird.
die Institut Bezeichnung, ist ja eine Vorlage von access selbst gewesen die ich mir
umgemodelt hab.

Ich meinte mit Liste das Formular Institutsliste. In diesem Formular sollen ja später die
Datensätze angezeigt werden. Mit einem Klick auf die ID Nummer des Kunden
soll das Formular Institusdetails aufgehen ( dieses Formular funktioniert ja bereits bestens )

Im Formular Institut Details möchte ich in einem Suchfeld die Tätigkeit eingeben können. Nach der Eingabe sollen
halt nur jene Datensätze stehen bleiben wo der Suchbegriff in den Tätigkeiten auftaucht.

Lg Voipfreak

PS. ich danke dir echt vor deine Hilfe. Wenn alles funz schick ich dir gern nen Obulus per Paypal oder so.

MzKlMu

Hallo,
das Formular solltest Du neu machen, da sich Feldnamen geändert haben und Felder entfallen sind. Mit Access2010 habe ich nicht viel Erfahrung und mit eingebetten Makros schon gar nicht. Ich mache Dir gern ein Formular mit VBA Code, wenn Du willst.
Von den Makros solltest Du die Finger lassen, Du wirst in keinem Access Forum Hilfe dazu bekommen. Die will keiner.

Zum Filter:
Der Filter beschränkt sich nun auf ein Feld in der 3. Tabelle.

Was Deine Namensgebeung betrifft, so ist ja Institut wohl kaum ein sinnvoller Name für eine Tabelle mit Personen. Das solltest Du dringend anpassen, je länger Du wartes, um so größer wird der Aufwand für Änderungen.

ZitatWenn alles funz schick ich dir gern nen Obulus per Paypal oder so.
Lass mal gut sein, meine Hilfe ist kostenlos. Mit Geld geht man Verplichtungen ein und das will ich nicht.
Gruß Klaus