[Access'97] Ausgewählte Datensätze auflisten

Hallo liebe wer-weiss-was’ler!

Mein Problem ist folgendes:
Ich habe eine Tabelle „Artikel“, die u.a. Spalten mit Schlagwort-ID’s enthält.
Ich habe ein Formular „Recherche“ mit Kombinationsfeldern erstellt, in denen ich diese Schlagworte bestimme. Die ID’s dazu werden in der Tabelle „Artikel“ gespeichert.
Jetzt möcht ich gerne, daß z.B. über Klicken auf einen Button in dem Formular „Recherche“ ein Unterformular erscheint, das nur die Datensätze der Tabelle „Artikel“ anzeigt, die die ausgewählten Schlagworte enthalten.

Könnt ihr mir sagen, wie man das macht? Brauche ich dazu Visual Basic, oder kann ich mir das auch „zusammenklicken“?
Ich arbeite erst seit kurzem mit Access, und kenn mich damit noch nicht aus. Ein paar Makros hab ich gerade mal hingekriegt, aber bei Visual Basic hört’s auch schon auf.
Wahrscheinlich ist meine Frage für Access-Erfahrene nur 'ne Kleinigkeit, aber ich sitze schon seit einigen Tagen vor diesem Problem, ich bin für jeden Tip dankbar!!

Danke,
Claudia

Hallo Claudia,

Wahrscheinlich ist meine Frage für Access-Erfahrene nur 'ne
Kleinigkeit

Stimmt! Du brauchst VBA dafür. Laß Dich aber nicht davon abschrecken; es ist einfacher, als Du denkst.

Erstelle Dein Button, und gehe in die Eigenschaft „Ereignis/Beim Klicken“. Bei der folgenden Dialogbox wähle „Code-Editor“.
Es erscheint ein Codefenster, und als einzige Zeile trägst Du ein:

DoCmd.OpenForm "DeinFormular", acNormal, ,"[ID] IN(SELECT ID FROM [Artikel]"

(den Rest läßt Du unberührt). Achte auf die Kommata, die sind wichtig.

Bitte achte darauf: Für DeinFormular mußt Du den Namen des richtigen Formulars eintragen, und für ID mußt Du den richtigen Spaltennamen eintragen. Dann läuft es wie geschmiert!

Gruß

J.

Hola José!

Vielen dank für Deine schnelle Antwort!
Es gab nur ein kleines Problem:

Ich hab die Zeile mit den richtigen Namen eingefügt:

DoCmd.OpenForm „Artikel Unterformular“, acNormal, , „[Artikel-Art_ID] IN(SELECT Artikel-Art_ID FROM [Artikel])“

Wenn ich den Button jetzt klicke, werde ich nach den Parameterwerten für Artikel, Art_ID und Artikel-Art_ID gefragt.
Meine Spalte heißt Artikel-Art_ID, Spalten namens Artikel oder Art_ID gibt’s gar nicht.
Hab ich bei der Code-Zeile was falsch gemacht?

Und wie kann ich die Zeile so erweitern, dass alle 5 Schlagworte (aus 5 versch. Kombinationsfeldern) beruecksichtigt werden?

Wär super, wenn Du mir nochmal helfen koenntest!

Ich dank Dir José!
Hasta pronto! :wink:

Claudia

Es erscheint ein Codefenster, und als einzige Zeile trägst Du
ein:

DoCmd.OpenForm „DeinFormular“, acNormal, ,"[ID] IN(SELECT ID
FROM [Artikel]"

(den Rest läßt Du unberührt). Achte auf die Kommata, die sind
wichtig.

Bitte achte darauf: Für DeinFormular mußt Du den Namen
des richtigen Formulars eintragen, und für ID mußt Du
den richtigen Spaltennamen eintragen. Dann läuft es wie
geschmiert!

Gruß

J.

Hola!

Vielen dank für Deine schnelle Antwort!

Bitte bitte

DoCmd.OpenForm „Artikel Unterformular“, acNormal, ,
„[Artikel-Art_ID] IN(SELECT Artikel-Art_ID FROM [Artikel])“

Sorry, ich wußte nicht, daß Dein Spaltenname einen Bindestrich hat. Das muß natürlich heißen:

DoCmd.OpenForm "Artikel Unterformular", acNormal, , "[Artikel-Art\_ID] IN(SELECT [Artikel-Art\_ID] FROM [Artikel])"

(also den Feldnamen Artikel-Art_ID in eckigen Klammern). Sonst denkt Access, Du wolltest zwei Werte voneinander abziehen.

Dann tut es, ganz bestimmt!

Und wie kann ich die Zeile so erweitern, dass alle 5
Schlagworte (aus 5 versch. Kombinationsfeldern)
beruecksichtigt werden?

Je nachdem, ob du UND- oder ODER-Verknüpfungen haben willst, etwa so:

DoCmd.OpenForm "Artikel Unterformular", acNormal, , 
"[Artikel-Art\_ID] IN(SELECT [Artikel-Art\_ID] FROM [Artikel]) OR [Artikel-Art\_ID] IN(SELECT [Artikel-Art\_ID] FROM [Tabelle2]) OR 
[Artikel-Art\_ID] IN(SELECT [Artikel-Art\_ID] FROM [Tabelle3]) "

bzw.

DoCmd.OpenForm "Artikel Unterformular", acNormal, , 
"[Artikel-Art\_ID] IN(SELECT [Artikel-Art\_ID] FROM [Artikel]) AND 
[Artikel-Art\_ID] IN(SELECT [Artikel-Art\_ID] FROM [Tabelle2]) AND 
[Artikel-Art\_ID] IN(SELECT [Artikel-Art\_ID] FROM [Tabelle3]) "

wobei Tabelle2 und Tabelle3 die anderen Bedingungen enthalten (oder hast Du das auf anderen Spalten der gleichen Tabelle gelegt? Dürfte für Dich VBA-Profi mittlerweile kein Problem sein, das Anzupassen :smile:

Wär super, wenn Du mir nochmal helfen koenntest!

Ich hoffe es!

Hasta pronto!

(bist Du wirklich immer blau?)

Gruß

J.