PDA

Vollständige Version anzeigen : Anfügeabfrage


Michi
15.10.2001, 13:11
Hallo zusammen!

Ich habe folgendes Problem: Wir schicken Werbebriefe an verschiedene Kunden sogenannte Werbungsgroßaktionen. Nun soll unter der Tabelle "3", wo alle Kontakte verzeichnet sind, per Anfügeabfrage jeder Brief unter dem jeweiligen Kunden/Empfänger verzeichnet werden.

Ich habe mir gedacht, dass hier eine Anfügeabfrage nützlich sein könnte. Nur leider muss ich auf ganz bestimmte Kriterien beim Anfügen achten!

Zuerst einmal sind jedem Kunden (Tabelle 1) ein oder mehrere Ansprechpartner zugeordnet (Ansprechpartner unter Tabelle 2, 1:n der Tabelle 1 untergeordnet). Also bei Mercedes (1) z. B. Meier, Huber, Müller (2).

Die Kontakte mit diesen Ansprechpartnern werden unter Tabelle 3, also den Kontakten, erfaßt.

Und jetzt kommts: Jedem Kunden, der das Kennzeichen WGA=ja (Kontrollkästchen) hat,
soll ein Kontakt unter 3 angefügt werden. Bei der Tabelle Kontakt sind folgende Felder zu füllen:

Datum
Ansprechpartner
Vorname
Kontaktart
Berater
Brief-Nr.

Bei den Feldern Datum und Kontaktart steht der Inhalt fest: Datum=heute() und Kontaktart=WGA.

Die Felder Berater und Brief-Nr. sollen einem Formular mit ungebundenen Feldern entnommen werden (z. B. Formular "Dateneingabe").

Die Besonderheit: Ist ein Ansprechpartner unter 2 gespeichert, so soll nur bei dem die Anfügung unter Ansprechpartner und Vorname erfolgen, bei dem das Kriterium WGAAP=ja (Kontrollkästchen unter 2) erfüllt ist.

Ist kein Ansprechpartner vorhanden (exists=false) soll unter Ansprechpartner in 3 nur "Geschäftsführung" angefügt werden.

Wer kann mir weiterhelfen?

Vielen Dank im voraus!

Michi

Kurt aus Kienitz
15.10.2001, 15:16
Hallo,

Die Tabellen sehen ungefähr so aus:

Tabelle: Kunden
ID | Name | WGA
---+------------------------+-----
-1 | Alle Kunden | Ja
1 | Heiner von Müller GmbH | Ja
2 | Schulze oHG | Ja


Tabelle: Ansprechpartner
ID | KndID | Name | WGAAP
---+-------+------------------+-------
-1 | -1 | Geschäftsführung | Ja
1 | 1 | Heiner von Müller| Nein
2 | 1 | Else von Müller | Ja
3 | 2 | Klaus Schulze | Nein
4 | 2 | Erna Schulze | Ja

Um nun die "regulären" Kontakte einzutragen, sollte folgendes SQL funktionieren:

INSERT INTO Kontakte (Datum, ApID, KontaktArt, Berater, Brief-Nr)
(SELECT Date(), Ansprechpartner.ID, 'WGA', Forms![Dateneingabe].Berater, Forms![Dateneingabe].[Brief-Nr]
FROM Ansprechpartner, Kunden
WHERE Kunden.WGA=True
AND Kunden.ID > 0
AND Ansprechpartner.KndID = Kunden.ID
AND Ansprechpartner.WGAAP = True);

Jetzt fehlt aber irgendwie ein Henkel in der Tabelle Kontakte, wenn der Ansprechpartner
"Geschäftsführung" sein soll/muß.
Mit Henkel meine ich z.B. die Kunden-ID.

Was meinst Du ?

Michi
15.10.2001, 19:21
... wer nämlich mit H schreibt ...

Michi
17.10.2001, 08:49
Kann es sein, dass es grundsätzlich Probleme gibt, per Anfügeabfrage Datensätze an ein UNTERformular (1:n mit Hauptformular verknüpft) anzufügen?

Ständig diese "Typumwandlungsfehler"! Leider existiert dieser Begriff auch in der Access-Hilfe nicht!

Kurt aus Kienitz
17.10.2001, 09:51
Hallo,

Hast Du denn schon mal geprüft, ob die Typen zusammen passen ?

Insbesondere 3.Datum und Formulare![Erfassungsformular Werbungsgroßaktionen]![Datum].

Könnte mir vorstellen, daß dieses Textfeld nicht ohne Probleme an eine Date/Time Splate übergeben werden kann.

Ggf. probier es mal so:
SELECT DISTINCT "#" & Format(Formulare![Erfassungsformular Werbungsgroßaktionen]![Datum],"YYYY-MM-DD") & "#" AS Ausdr1....

Michi
23.10.2001, 19:16
Hallo Leute!

Fragt mich nicht warum, aber das ganze funktioniert jetzt. Ich habe das ganze nochmal gepflegt von vorne aufgezogen - mit dem Abfrage-Assistenten. Und es funktioniert genau so, wie ich es haben wollte. Ohne jegliche Regelverstöße.

Hier die SQL, und vielen Dank an alle!

INSERT INTO 3 ( Kundennummer, Datum, Kontaktart, Kontaktinhalt, Berater, [Brief-Nr], Ansprechpartner )
SELECT [Alle Kunden mit WGA ja].Kundennummer, Formulare![Erfassungsformular Werbungsgroßaktionen]![Datum] AS Ausdr1, "WGA" AS Ausdr3, "Doppelklick auf Brief-Nr." AS Ausdr4, Formulare![Erfassungsformular Werbungsgroßaktionen]![Kombinationsfeld9] AS Ausdr5, Formulare![Erfassungsformular Werbungsgroßaktionen]![Briefnummer] AS Ausdr6, [Alle Kunden mit WGA ja].Empfänger
FROM [Alle Kunden mit WGA ja];