Januar 20, 2022, 02:12:54

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Datensätze aus einem Listenfeld in einer Tabelle/Abfrage speichern

Begonnen von Macik, August 13, 2021, 13:08:38

⏪ vorheriges - nächstes ⏩

Macik

Hallo zusammen,

ich bin Access Anfänger und muss eine Mitglieder Datenbank bearbeiten. Folgendes Problem:

Aus einer Suchfunktion bekomme ich Mitglieder Datensätze in einer Liste angezeigt.
Durch Doppelklick auf einem der Datensätze wird dieser in einer anderen Liste(Empfängerliste) angezeigt.
Die Datensätze der Empfängerliste will ich nun an Word senden zur Erstellung von Serienbriefe. 
Gibt es da direkt einen Code für oder muss ich die Empfängerliste zuerst in einer neuen Tabelle oder Abfrage speichern, wenn ja wie?

Ich bin absoluter Neuling und habe nur kleines Grundwissen in Access/VBA.

Ich bin für jeden Tipp Dankbar!

Gruß

MzKlMu

Hallo,
da würde ich mir erst mal die Frage stellen, ob hier Word notwendig ist.
Auch mit Access lassen sich Serienbriefe (als Bericht) realisieren.

Warum willst Du da Word ?
Was soll den in dem Serienbrief stehen ?
Gruß
Klaus

DF6GL

Hallo,

Zitat von: undefinedIch bin absoluter Neuling und habe nur kleines Grundwissen in Access/VBA.

dieses "kleine" Grundwissen (ohne zu wissen, wie klein des nun ist) solltest Du auf jeden Fall erweitern, bevor Du Dich mit der DB weiter auseinandersetzt (--->  muss eine Mitglieder Datenbank bearbeiten)


Zudem sollte die Kommunikation auf den üblichen Bezeichnungen basieren, um Miss- oder Unverständnis zu vermeiden.


Z. B.: was ist bei Dir eine "Liste"?  Datensätze können dargestellt werden mit der Tabellenansicht, Abfrageansicht, mit Formularen im Endlos- oder Datenblattansicht-Modus oder auch mit Berichten.


Es gibt ein "Listenfeld"-Steuerelement, das bestimmte Datensätze, bzw. Datensatzfelder in einem Form/Bericht anzeigen kann, entspr. der eingestellten Abfrage in dessen Eigenschaft "Datensatzherkunft".



Zitat von: undefinedDie Datensätze der Empfängerliste will ich nun an Word senden zur Erstellung von Serienbriefe.


Warum Word?

Es gibt wie immer, mehrere Wege, die nach Rom führen...


1) Händisch:Rechts-Klick auf eine Abfrage (im Navibereich) , die die gewünchten Daten liefert und unter "Exportieren/Word-Seriendruck" den Assistenten starten.


2)  Access-VBA: Export der "Empfängerliste", ich nehme jetzt mal an, es handelt sich hierbei um eine Abfrage, mit der Transfertext-Methode in eine CSV-Datei, die als Steuerdatei für den Word-Serienbrief dient und damit anschließend unter Word ein Serienbrief (z. B. mit dem Sereinbrief-Assistenten) erstellt und gedruckt wird.


3) Händisch oder Word-VBA:  Direkter Aufruf der Abfrage aus Word heraus durch den o. g. Serienbrief-Assistenten.

4) Access-VBA:  Word-Automatisierung mit Access-VBA  und benutzen der Word-MailMerge-Methode entspr. wie Punkt 1 oder 2.

Macik

4) Access-VBA:  Word-Automatisierung mit Access-VBA  und benutzen der Word-MailMerge-Methode entspr. wie Punkt 1 oder 2.




Genauso soll das funktionieren. Über die bestehende Suchfunktion werden die gesuchten Datensätze in einem Listenfeld angezeigt durch Doppelklick auf eines der Einträge wird ein zweites Listenfeld (von mir bereits eingebettet) gefüllt.


Idealerweise wäre wenn ich dann per Button die Datensätze aus dem Listenfeld an Word übergeben kann.

Macik

Es sollen die Mitgliederadressen an Word übergeben werden zur Erstellung der Serienbriefe.

Ich befinde mich in einem Ausbildungspraktikum und das ist ein kleines Projekt woran ich arbeiten und lernen soll.

Direkt über Word den Serienbrief zu erstellen(Händische Methode) hat leider nicht funktioniert da meine Datensatz selektierung nicht beibehalten bleibt. Word übernimmt immer wieder ALLE ca 30000 Einträge aus der Tabelle.
mit kleineren Datenbanken hat das funktioniert. Deshalb glaube ich das Word mit der großen Tabelle nicht klar kommt.

DF6GL

Hallo,

Zitatkleines Projekt woran ich arbeiten und lernen soll.


ok, dann schau Dir einige Tutorials zu Word-Automation oder Serienbrief aus Access generierien an.



Zitat(Händische Methode) hat leider nicht funktioniert


Das liegt vermutlich an der Art und Weise der Kriterien-Definition (Where-Condition).

Quick&Dirty:  Speicher die gefilterten DS in eine Zwischentabelle. Diese Tabelle benutzt Du anstelle der Abfrage beim Word-Assistenten.

oder:  wie Punkt 2. 



Einige Links:

https://www.access-o-mania.de/forum/index.php?topic=20010.0

https://docs.microsoft.com/de-de/previous-versions/office/troubleshoot/office-developer/automate-word-create-mail-merge

https://microsoft.public.de.access.narkive.com/ODvPWJgB/word-serienbriefe-aus-access-starten

und einfach mal weiter mit einer Suchmaschine suchen...

MzKlMu

Hallo,
die Frage, warum Word ist damit aber nicht beantwortet. Man kann auch mit Access direkt Serienbriefe erstellen, da braucht man kein Word. Access hat einen sehr leistungsfähigen Report Generator.
Was soll den in den Serienbriefen stehen (außer den Adressen ?
Gruß
Klaus

Macik

Ich schau mir das mal an mit den Berichten. Informationsbriefe eig nur Text und paar Bilder.

Macik

Zitat von: DF6GL am August 13, 2021, 15:18:25Quick&Dirty:  Speicher die gefilterten DS in eine Zwischentabelle. Diese Tabelle benutzt Du anstelle der Abfrage beim Word-Assistenten.

oder:  wie Punkt 2. 

Kannst du mir da einen Tipp geben wie ich die Datensätze aus der Liste durchlaufen kann und in einer separaten Tabelle/Abfrage hinterlegen. Ich find leider nichts in der Suchmaschine

Gruß
Micha

DF6GL

Hallo,


nochmal: Was ist eine "Liste" bei Dir?


Die Liste wird vermutlich durch eine Abfrage mit Kriterium generiert (Abfrageansicht).


Mit Hilfe eines Insert Into -SQL-Statements (Anfügeabfrage) können die aus der ersten Abfrage stammenden Datensätze in einer separaten Tabelle abgelegt werden.


https://support.microsoft.com/de-de/office/insert-into-anweisung-e12fd58b-33b1-479c-8221-e9f245ab8d24


Insert Into tblTemp Select * From abf_DeineAuswahlabfrage




oder mit einer Tabellenerstellungsabfrage:

https://support.microsoft.com/de-de/office/select-into-anweisung-74d958dc-4b35-4b97-a7f7-72087e036d9c


SELECT * INTO tblTemp  FROM  abf_DeineAuswahlabfrage

Macik

Ich habe 2 Listenfeld Steuerelemente im Formular. Liste 1 wird durch die Suche gefüllt. Und durch Doppelklick auf einen der Einträge wird dieser Eintrag in die zweite Liste gefüllt. Wenn ich die zweite liste vervollständigt habe mit allen nötigen Empfängern, möchte ich per Button die Liste in eine Tabelle/Abfrage sichern und dann weiterverwenden.
Ich würde dann noch einen Button benötigen um die gefüllte Tabelle wieder zu leeren für weitere Serienbriefe mit anderen EmpfängernSie dürfen in diesem Board keine Dateianhänge sehen..
Vielen Dank für deine Mühe und Hilfe

Gruß
Micha

Beaker s.a.

Hallo Micha,
ZitatUnd durch Doppelklick auf einen der Einträge wird dieser Eintrag in die zweite Liste gefüllt.
Wozu? Das Listfeld-Control stellt eine Eigenschaft "Mehrfachauswahl" (DeineListe.MultiSelect)
zur Verfügung. Wenn du diese auf "erweitert" stellst wird bei der Auswahl die Auflistung
"DeineListe.ItemsSelected" gefüllt. Diese kannst du dann mit einer Schleife durchlaufen
(Prinzip):
    Dim vItem As Variant

    For Each vItem In Me.DeineListe.ItemsSelected
        'mach was mit dem DS
    Next

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

DF6GL

Hallo,

und ich verstehe die Geschiche immer noch nicht:

ZitatUnd durch Doppelklick auf einen der Einträge wird dieser Eintrag in die zweite Liste gefüllt.

OK, und wie wird das gemacht?

ZitatWenn ich die zweite liste vervollständigt habe mit allen nötigen Empfängern,

Und wie wird das gemacht? Wie vervollständigst Du einen Listenfeld-Eintrag (Datensatz) mit weiteren Daten (Empfänger)?

Oder meinst Du einfach nur, dass Einträge aus Listenfeld1 nach und nach ins Listenfeld2 kopiert werden?

Insofern ist der Vorschlag von Ekkehard der richtige Weg , um die Daten(sätze) aus Listenfeld2 in eine Tabelle zu bringen. ((VBA-Schleife mit  Insert-Abfrage pro Listenfeld-Eintrag).



Lad mal die DB hier hoch, komprimiert/repariert und gezippt

Macik

Zitat von: DF6GL am August 16, 2021, 12:26:38Oder meinst Du einfach nur, dass Einträge aus Listenfeld1 nach und nach ins Listenfeld2 kopiert werden?

Ja so meine ich das :)
Sry, für die schlechte Erklärung des Problems. Ich versuche mal die schleife anzuwenden.
Ich kann die Datenbank nicht posten, einige sensible Daten sind hier hinterlegt.

Gruß
Micha

Beaker s.a.

Hallo Franz,
Zitatum die Daten(sätze) aus Listenfeld2 in eine Tabelle zu bringen.
Vertippt?
Das zweite Listfeld ist doch obsolet.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.