PDA

Vollständige Version anzeigen : Anfügeabfrage aus ungebundenen Feldern


Michi
10.07.2001, 12:24
Hallo!
Ich möchte unter der Tabelle "Kontakte" jedem unserer Kunden, die ein bestimmtes Schreiben erhalten haben den gleichen Kontakt hinzufügen. Also z. B. Datum, Briefnummer, Bearbeiter bleiben gleich und sollen z. B. 25 Kunden unter "Kontakte" zugeordnet werden. Kann ich das auch aus einem Formular mit ungebundenen Feldern machen? Also einmal die festen Daten eintragen, dann Kriterium bestimmen, welchen Kunden das angefügt werden soll und fertig. Ist das möglich? Vielen Dank im voraus!

Michi
19.07.2001, 12:45
Ist veilleicht jemandem schon was eingefallen? Ich bin dankbar für jeden Hinweis!

Morli
19.07.2001, 12:52
Hallo Michi,

warst Du krank oder hattest Du Urlaub oder bist Du einfach nur so gedultig?

Also sicher kannst Du in einer Aktualsierungsabfrage in der Spalte Aktualsieren Bezug auf ein ungebundenes Formularfeld nehmen.
Du trägst die Daten zu im Feld "Text1" in Formular "Formular1" ein, wählst die Kunden aus und startest die Abfrage, die in der Spalte "Kontakt" im Feld "Aktualisieren" den Bezug [Formulare]![Formular1]![Text1] hat.

Gruß

Rainer ;)

Michi
19.07.2001, 14:59
Vorab vielen Dank für die Antwort, Rainer. Natürlich bin ich so geduldig! ;-)

Ich glaube, es liegt ein kleines Mißverständnis vor. Ich will nämlich keine Aktualisierungsabfrage, sondern eine ANFÜGEabfrage verwenden. Hintergrund: Geht ein Massenschreiben an unsere Kunden raus, so soll der selbe Eintrag (Datum, Briefnummer etc.) bei allen Kunden drinstehen. Problem: die Kontakte werden in einem Unterformular namens "Kontakte" erfaßt. Dieses UF ist 1:n dem HF "Kunden" untergeordnet. Ich habe nun folgendes probiert: In der Anfügeabfrage habe ich zu Beginn angegeben, dass die Kontakte in der Tabelle "Kontakte" erfaßt werden sollen. In der Zeile "Feld" der Abfrage habe ich dann meine UNGEBUNDENEN Textfelder aus einem AnfügeFORMULAR angegeben. Bei "anfügen an" steht dann jeweils das Feld der Tabelle "Kontakte" an das angefügt werden soll (also Datum, Briefnummer etc.). Wenn ich aber die Abfrage starten will, meldet mir Access eine "Schlüsselverletzung". Die Hilfedatei verrät dann, dass es evtl. Probleme mit der 1:n-Unterordnung meiner Zieltabelle zu tun haben könnte. Ich will die Kontakte ja auch nur jedem Kunden einmal anfügen. Wie kann ich die Sache in den Griff bekommen? Danke!

Morli
19.07.2001, 15:13
Hi Michi,

also wenn ich dich richtig verstehe, dann hast Du ein Hauptformular in welchem Du die Kunden auswählen kannst! Im ungebundenen Unterformular gibst Du deine Kontakte-Infos ein! Nun soll in der Tabelle "Kontakte" praktisch für jeden gewählten Kunden der KundenID und die Daten der diversen Felder eingetragen werden?

Wenn das so stimmt, dann poste mal die Namen der Tabellenfelder (die stimmen ja mit den Namen der UFo-Felder überein) und das Kriterium, wie Du die Kunden selektierst (Listenfeld/Optionsfelder im Formular/Oder....).
Dann kann ich oder jemand anderes Dir sicher mit einem entsprechenden VBA-Code helfen.

Gruß

Rainer ;)

Michi
19.07.2001, 18:55
Im Grundsatz hast Du das richtig verstanden. Allerdings ist das UF an das HF sehr wohl gebunden. Es ist dem HF nämlich 1:n untergeordnet. Im HF sehe ich z. B. den Kunden Müller. Klicke ich auf den Button "Kontakte" so öffnet sich ein UF namens "Kontakte". In diesem UF sind alle Kontakte mit dem Kunden gespeichert (Datum, Kontaktinhalt etc.). Nun kann es vorkommen, dass wir sog. Werbungsgroßaktionen machen, d. h. es wird der gleiche Brief an alle Kunden in Nürnberg versandt. Da es für den Außendienst wichtig ist, zu wissen, welcher Kunde welchen Brief erhalten hat, sollte man auch solche Großaktionen unter "Kontakte" erfassen. Will ich diese Kontakte aber alle einzeln erfassen, dann sitze ich vermutlich eine Woche lang. Lösungsversuch: Eine Anfügeabfrage muß her, die an alle ganz bestimmten Betriebe unter "Kontakte" das gleiche anfügt. Ich habe mir also gedacht, ich baue ein "Erfassungsformular" mit UNGEBUNDENEN Textfeldern. In diesem Formular werden allgemeingültige Daten, wie z. B. Datum und Brief-Nr (dies ist keine ID!) eingegeben. Durch Knopfdruck werden dann allen Kunden diese Daten angefügt. Als ich das mit einer Anfügeabfrage versucht habe, ist es zu oben beschriebenem Fehler gekommen. Zu einer "Schlüsselverletzung". Mein UF Kontakte ist mit dem HF Kunden über die ID Kundennummer verknüpft. Ich habe also einfach mal als Kriterium bei Kundennummer aus der Tabelle "Kontakte" in der Anfügeabfrage =[Kunden].[Kundennummer]eingegeben und prombt hatte ich keine Schlüsselverletzung mehr. Aber dafür ein anderes Problem. Access fügt die Eingaben zwar wunderbar an, aber an jeden Datensatz des UF Kontakte. Hatte der Müller also 4 Kontakte gespeichert, fügt Access jedem Datensatz meine Anfügung zu. Das gleiche bei Meier und Huber. Klar, weil: auf das Kriterium Kundennummer=Kundennummer treffen mehrere Datensätze zu - und jedem wird was hinzugefügt. Ich habe versucht, bei der Anfügeabfrage unter Eigenschaften auf "Keine Duplikate: Ja" zu gehen. Führe ich die Abfrage dann aus, bekomme ich die Meldung "Typenumwandlungsfehler, x Datensätze werden von Access auf Null gestellt". Kein Datensatz wurde dann hinzugefügt. Wie kann ich das lösen? Vielen Dank an alle!

Morli
19.07.2001, 19:32
Hi Michi,

sorry, das mit dem ungebunden Form hattest Du ja schon geschrieben. Aber das mit dem Erfassungformular mit den ungebunden Feldern ist schon mal ein schöner Ansatz. Jetzt fehlt nur noch die Info, wie du aus der Tabelle Kunden diejenigen auswählst, den die neuén Kontakte zugeordnet werden sollen (natürlich über das Form, aber wie? Anhand des Großraums, der in der Tabelle hinterlegt ist, oder anhand manueller Auswahl mittels Listenfeld, oder wie....!).
Und diese Werte ( KundenID, Datum, BriefNr, u.s.w.) sollen dann in die Tabelle Kontakte übernommen werden!
Da Du ja schon das Problem mit der Anfügeabfrage erkannt hast, empfehle ich Dir hier ein wenig VBA. Dafür ist es aber nun mal wichtig, wie Du die Kunden selektierts!
Schreib das mal und dann sehen wir weiter!


Gruß

Rainer ;)

marcohom
19.07.2001, 23:25
Hi Michi !

Ich habe mal etwas ausprobiert und dir per Email geschickt. Vielleicht hilft es Dir.
Ciao,
Marco