voipfreak
Goto Top

MS Access Filter für mehrere Felder

Hallo Zusammen, ich habe ein Frage bzw. ein Problem andem ich fast verzweifele.

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 kommen aus einer Tabelle ich ich Tätigkeiten geannt habe. Man kann also den Kunden Festgelegte
Bereiche zuordnen. Nun möchte ich in dem Formular : "Kundenliste" einen Filter für die Tätigkeitsfelder ( insgesamt 5 ) anwenden. Dass heisst
man soll eine Festgelegte Tätigkeit auswählen ( Beim klicken geht der Reiter mit allen Tätigkeiten auf ) und dann sollen nur
jene Kunden die in diesem Bereich Tätig sind erscheinen.

Da ich mit VB und Access nicht so bewandert bin, frage ich euch liebe "Leidensgenossen" ob Ihr mit vieleicht bei
meinem vorhaben helfen könnt.

Vielen Dank im voraus

Gruß Voipfreak

Content-Key: 173281

Url: https://administrator.de/contentid/173281

Ausgedruckt am: 29.03.2024 um 11:03 Uhr

Mitglied: Biber
Biber 18.09.2011 um 21:58:30 Uhr
Goto Top
Moin Voipfreak,

wie hast du denn die Daten in den beiden Tabellen an- bzw abgelegt?

  • in der "Kunden"-Tabelle fünf Felder a la "Tätigkeit1", "Tätigkeit2". etc?
  • Wenn ja, als Textfeld oder als "TätigkeitsID" oder ähnlich?
  • oder in den "Kunden" ein Textfeld mit dem konkreten "Tätigkeits-Text" (also Inhalt "Rocken;Poppen;Dancen") ?

Poste doch mal die Struktur (szizziert)

Grüße
Biber
Mitglied: voipfreak
voipfreak 18.09.2011 um 22:30:45 Uhr
Goto Top
Hi Biber, danke erstmal für deine Antwort,

Zitat von @Biber:
Moin Voipfreak,

wie hast du denn die Daten in den beiden Tabellen an- bzw abgelegt?

Ich habe die Tabellen : Tätigkeiten 1,2... unsw einzeln als Felder in der Tabelle Kundendatenbank erstellt. Über das Formular Kundendetails kann man den Tabelleninhalt für die Tabellen 1,2 usw.
per dropdwon auswählen und verändern. Die Herkunft dieses Feldinhaltes, kommt von einer extratabelle namens Tätigkeiten.

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

Gruß Voipfreak
Mitglied: Biber
Biber 18.09.2011 um 22:56:36 Uhr
Goto Top
Moin Voipfreak,

ist nicht ganz die optimale Datenorganisation für (performante) Abfragen per SQL.

Wenn du alle "Kunden"-Datensätze mit einem bestimmten "Tätigkeits"-Profil ermitteln willst, dann würde das aud eine Abfrage herauslaufen:
SELECT k.* 
 FROM Kunden k, taetigkeiten t
WHERE t.taetigkeit in (k.taetigkeit1, k.taetigkeit2, taetigkeit3,....)

Ich würde eher eine Variante mit einer Tabelle mehr anstreben, also zusätzlich zu KUNDEN und TAETIGKEITEN eine Zuordnungstabellen KKUNDEN-TAETIGKEIT mit den Feldern KundenID und TaetigkeitsID (oder TaetigkeitText) als einzige Felder und auch diesen feldern als PK.

Grüße
Biber
Mitglied: voipfreak
voipfreak 24.10.2011 um 22:44:42 Uhr
Goto Top
Ich muss mich nach langer Pause nochmal zurückmelden face-big-smile

Also ich bin mit diesem Thema in so fern weitergekommen:

Ich habe in einem Tread hier im Forum die gleich problematik gefunden.

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.

Kann mir hier jemand helfen ?

Vielen Dank im voraus.


Gruß Voipfreak