Office: (Office 2003) Email mit verschiedenem Anhang aus Access

Helfe beim Thema Email mit verschiedenem Anhang aus Access in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo! Ich habe folgendes Problem und bräuchte einen Rat, wie ich da am besten rangeh: Wir haben einen Wachdienst und versenden am nächsten Tag immer... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Michi, 21. September 2007.

  1. Email mit verschiedenem Anhang aus Access


    Hallo!

    Ich habe folgendes Problem und bräuchte einen Rat, wie ich da am besten rangeh:

    Wir haben einen Wachdienst und versenden am nächsten Tag immer Protokolle an unsere Kunden, was die letzte Nacht so vorgefallen ist. Die Protokolle werden auf Word erstellt und mit Outlook als Email mit Anhang versandt.

    Damit gleich ne Statistik nebenbei geführt wird, möchte ich jedes Ereignis (z. B. Fenster offen) nun als Datensatz in Access erfassen. Sowohl die Erstellung des Protokolls (also der Anlage), als auch der Versand der Mails soll von Access aus erfolgen.

    Hab schon das Forum nach dieser Problematik durchsucht und mir sogar die Access-Paradies CD zugelegt, auf dem auch ein paar Tools zum Thema Access und Email drauf sind, aber irgendwie hat alles nie so richtig gepasst. Das mag an folgenden Kriterien liegen:
    • Der Inhalt der Protokolle ist immer unterschiedlich, also jede Mail hat eine Anlage mit anderem Inhalt
    • Der Text der Mail selbst hat immer den gleichen Inhalt („anbei wieder das Protokoll...“)
    • Ein Protokoll (also Anhang) kann an mehrere Empfänger gehen

    Ein Beispiel hierzu:

    Bei der Firma Huber ist ein Fenster und ne Tür offen. Bei der Firma Meier ein Tor und auch ein Fenster.

    Bei der Firma Huber gibt es drei Abteilungsleiter, die alle ein Protokoll mit den Vorkommnissen nur ihrer Firma bekommen sollen. Bei der Firma Meier bekommt nur der Chef ein Protokoll.

    Ich gehe also her und Erfasse die Ergebnisse in eine Access-Tabelle. Über Kunden- und Bereichsnummern kann ich genau zuordnen, bei welchem Kunde wo genau was passiert ist.

    Jedem Bereich im Betrieb sind wiederum Empfänger zugeordnet. Das Protokoll der Firma Huber müsste also an drei Empfänger gehen und das der Firma Meier nur an einen.

    Wie kann man das in Access automatisieren?

    Das nächste Problem ist das Ausgabeformat der Protokolle. Access exportiert entweder in dieses dubiose Snapshot-Viewer-Format (was kaum einer unserer Kunden öffnen könnte, ohne Viewer), in Excel (wo Datum und Uhrzeit nur als ### wiedergegeben werden) oder .rtf-File.

    Letzteres sieht noch am besten aus, verschiebt sich aber von der Formatierung her völlig, wenn der Kunde z. B. in das Dokument was anmerken will.

    Bislang haben wir die Ereignisse wie gesagt schön sauber in eine Tabelle in das Word-Dokument eingetragen. Stand da wie ne Eins und der Kunde konnte sogar noch in die Tabelle was eintragen, ohne dass sich gleich alles verschoben hat.

    Mal von der oberen Problematik abgesehen: Lassen sich Abfrageergebnisse aus Access in eine Word-Tabelle exportieren? Läuft da was mit Textmarken?

    Bin für jeden Lösungsansatz dankbar.

    Viele Grüße!

    Michi


    PS: Meine Benutzerumgebung: Windows XP, Word 2003, Access 2003, Outlook 2003

    :)
     
  2. Hallo,
    da könnte es helfen, die Spaltenbreite zu vergrößern. *wink.gif*

    Aber im Ernst, die Ausgabe in eine Word-Datei erscheint mir am günstigsten. Hierzu solltest du etliche Threads hier im Forum finden. Du kannst das mit Textmarken lösen oder auch mit einem Serienbrief.
     
    Anne Berg, 23. September 2007
    #2
  3. Hallo Anne!

    Vielen Dank für die prompte Antwort. Das #-Problem löst sich auch nicht durch Verbreitern der Spaltenbreite. Offensichtlich erkennt Excel das Datums- oder Uhrzeitformat nicht, wenn man die Zelle vorher nicht als solche formatiert und Access die Tabelle automatisch befüllen lässt.

    Mmmh, dann werd ich mal weitersuchen, ob ein Thread auf mein Problem zutrifft. Wie gesagt: Ich hab ja schon gesucht und immer nur Lösungen gefunden, die dann doch wieder nicht gepasst haben.

    So habe ich z. B. ja kein Serienmail-Problem im eigentlichen Sinne, weil ja nicht an 12000 Email-Adressen in einer Tabelle immer der gleiche Inhalt geschickt werden soll.

    Naja, mal sehen...

    Viele Grüße!

    Michi
     
  4. Email mit verschiedenem Anhang aus Access

    Eine Anmerkung noch zu der Word-Nutzung:

    Die Word-Dokumente, die erzeugt werden, sind nur für den Kunden und müssten nicht mal bei uns gespeichert werden. Die Daten, aus denen sie bestehen, sind ja eh noch in Access gespeichert.

    Ich möchte eben - sofern möglich - dass alles quasi auf Knopfdruck über ne Art "Stapelabfertigung" läuft und ohne die "bremsenden" Abläufe "Word-Dokument speichern", "Dokument an Email hängen" und "Email versenden".

    Die Speicherung der Protokolle als Word-Dokument kann durchaus im Hintergrund laufen, aber bei jedem Protokoll Speichername und -ort festlegen wird ja zu ner Klickorgie. Genau das möchte ich irgendwie umgehen.
     
  5. Hallo Michi,

    betreffs deiner Anfrage per Mail bzüglich des WordManagers,
    könnte dieser nur bedingt helfen.
    Letztendlich müsste da noch eine Routine laufen, welche aus einer Unterabfrage die benötigten Informationen in eine Tabelle in dem Worddokument bzw. Vorlage schreibt.
    Ist natürlich alles realisierbar.
    Dazu müsste man natürlich dein Datenmodell respektive deine DB kennen.
     
  6. Hallo Uwe!

    Dir auch vielen Dank für die rasche Antwort. Mmmh, mal sehen. Ich denke, ich bau mir zuerst mal die nötigsten Tabellen mit meinen Datenanforderungen zusammen und lad dann mal ne Beispiel-Datenbank hoch.

    Beim Durchsuchen der Threads hab ich jetzt ein Thema gefunden, welches auf jeden Fall auch für mich relevant sein dürfte. Auch bei mir ist die Anzahl der Zeilen in Word ja nicht fest. Mal gibt es mehr zu berichten, mal weniger. Wurde offenbar folgendermaßen gelöst:

    http://www.ms-office-forum.de/forum/...t=word+tabelle

    Viele Grüße!

    Michi
     
  7. Da bin ich wieder *Smilie

    Hab jetzt mal die grundlegenden Tabellen, auf die das Ganze aufbauen soll, erstellt. Die Datenbank steht unten zum Download bereit.

    Insgesamt besteht das Teil aus 5 Tabellen mit folgenden Bezeichnungen und Inhalten:
    • Kunden (quasi als Überbegriff über die Bereiche)
    • Bereiche (in welchem Bereich des Kunden wurde das Ereignis festgestellt)
    • Ereigniscodes (Abkürzungen für die Ereignisse, die festgestellt wurden)
    • Mitarbeiter (Name des Mitarbeiters, der das Ereignis festgestellt hat)
    • Ereignisse (eigentliche Haupttabelle, in der die Ereignisse erfasst werden)

    Die 4 ersten Tabellen liefern also lediglich Daten für die Nachschlagefelder in der Tabelle "Ereignisse".

    Da täglich etliche Ereignisse erfasst werden müssen, habe ich in den Nachschlagefeldern der Tabelle "Ereignisse" abgekürzte Codes verwendet. Statt Zahlen habe ich Codes verwenden, weil eine größere Verwechslungsgefahr bei einfachen Zahlen besteht und ich vermeiden möchte, dass der Kunde A die Vorkommnisse bei Kunde B übermittelt bekommt (Datenschutz). Deshalb Codes, die aus den ersten drei Buchstaben des Kunden bestehen und ggf. einer "Zusatzzahl" für den Bereich - wo erforderlich.

    Der nächste Schritt wäre nun, Access beizubringen, pro Bereich in der Tabelle "Ereignisse" ein Protokoll in Word zu erstellen (und zwar dort in eine Tabelle) und dieses Protokoll anschließend mit Outlook zu versenden.

    Die Email-Adressen der Empfänger sind dabei jedem Bereich in der Tabelle "Bereich" unter "Empfänger" zugeordnet.

    Ist dies grundsätzlich möglich? Es sind ja doch einige Unterprozesse bei diesem Ablauf durchzuführen. Word öffnen, mit Daten füllen, abspeichern (?), Outlook öffnen, Empfänger und Betreff einfüllen, Protokoll anhängen und absenden.

    Geht das?

    Vielen Dank und beste Grüße!

    Michi
     
  8. Email mit verschiedenem Anhang aus Access

    Hallo Michael,
    prinzipiell sollte die Sache kein Problem sein. Ich habe hier zwar momentan nur Acc97 zur Verfügung und kann Deinen Anhang daher nicht öffnen, aber:
    Wenn Du aus den Ereignissen die einer Firma zugeordnet sind via Abfrage direkt die benötigten Ansprechpartner zuordnest die eine Mail erhalten sollen dann hast Du schon mal alle nötigen Email-Adressen beisammen. Ich würde alle Daten in einer Abfrage bündeln und anschliessend alle Email-Empfänger in einer Schleife durchlaufen wobei die Abfrage bei jedem Durchlauf entsprechend umformuliert werden muss- doppelte DS kann man dann ggf. mit Select DISTINCT eliminieren, wenn die Abfrage etwa so aufgebaut ist
    Email -- Firma -- Ereignisse
    dann:
    Code:
    Ich habe Dir mal ein Word-Doku angehängt in dem beschrieben wird wie man Word-Tabellen aus Access erzeugen kann, in Deinem Fall verdient die ConvertToTable-Methode im Abschnitt "Tabelle aus einer Zeichenfolge in Word mit der ConvertToTable-Methode erstellen" besondere Beachtung.

    Die Prozeduren um das Word-Doku zu erzeugen sowie das Word-Doku per E-Mail zu verschicken würde ich jeweils in separate Prozeduren auslagern und die benötigten Parameter (z.B. EMail-Empfänger) als Argumente übergeben. Wenn man diese Schritte in Funktionen abarbeiten lässt kann man einen boolschen Wert (True/False) als Rückgabewert vereinbaren und so prüfen ob die Schritte korrekt abgearbeitet werden und so eine gute Fehlerbehandlung integrieren !! In der endgültigen Fassung würde ich darauf verzichten Word sichtbar zu machen - zum Testen ist es ok
    Ich hoffe ich konnte Dir einige weitere Denkanstösse geben, habe allerdings gerade nicht so viel Zeit wie ich gern hätte um mich ausgiebig mit diesem Thema zu beschäftigen. Sobald ich etwas Zeit habe hänge ich mich gern wieder rein *Smilie
     
  9. Hallo Smaug,

    vielen Dank für Deine Hilfe! Besonders Dein erster Satz erleichtert mich sehr *wink.gif*

    Ja, diese Abfragemethode habe ich mir auch so gedacht. Über eine Abfrage wird nach dem Empfänger alles gesammelt und an Word übergeben. Ich hab mal so eine Abfrage unter dem Namen "Protokolldaten" in meine Datenbank eingebaut. Die ist quasi die Grundlage für alle weiteren Prozesse. Wobei eine sture Abarbeitung Zeile für Zeile wohl dazu führen würde, dass jede Zeile, also jedes Ereignis, in einer separaten Email versandt werden würde. Müsste man irgendwie nach Empfänger zusammenfassen oder gruppieren.

    Auch hab ich ein Formular namens "Ereigniserfassung" entworfen, von dem aus die ganze Erfassung und der berühmte Knopfdruck auf "Protokolle versenden" erfolgen soll. Allerdings sehen da die Nachschlagefelder bescheiden aus - muss ich noch anpassen.

    Ich werd jetzt mal mit Deinem Code experimentieren - kann sich bei mir als VBA-Laien nur um Jahre handeln. Danke auch für die Anleitung zu Word und VBA - dürfte genau das sein, was ich brauche.

    Ich hab diesem Thread übrigens meine Datenbank im A03, A00 und A97-Format angehängt. Dürfte also für jeden was dabei sein. Allerdings hat mein Access beim Konvertieren gleich wegen fehlender Verweise und Funktionen gemault, wenn ich auf ältere Versionen zurücksetze *eek.gif*

    Danke und viele Grüße!

    Michi
     
  10. Tach auch *Smilie

    Hab mir jetzt grad mal die Anleitung zum Ansteuern von Word-Tabellen von Smaug durchgelesen und bin jetzt recht unschlüssig, welche Methode ich verwenden soll.

    Meine Word-Ziel-Tabelle
    • hat eine feste Spaltenzahl
    • hat eine variable Zeilenzahl
    • hat eine bestimmte Formatierung (Schattierung, Fett, Spaltenbreite etc.)
    • hat einen festen Ort innerhalb des Word-Dokuments

    Die ConvertToTable-Methode setzt ja erst mal alles zu einem String zusammen und baut dann ne komplett neue Tabelle auf. Sind da meine Formatierungen ein Problem?

    Ich habe gelesen, dass die ConvertToTable-Methode bei größeren Datenmengen der Ansteuerung von Textmarken und der zeilenweisen Abarbeitung vorzuziehen ist, da sie schneller geht. Einige Daten habe ich schon (derzeit rund 70 Datensätze, also Zeilen - Tendenz steigend). Gibt es dann überhaupt eine Alternative zu ConvertToTable?

    Damit man sich mein Zieldokument einmal plastisch vorstellen kann, habe ich es diesem Thread angehängt. Auch meine Datenbank mit dem oben genannten Code von Smaug habe ich angehängt (beim Button "Protokolle versenden" im Formular "Ereigniserfassung").

    Der Zieltabelle habe ich bereits eine Textmarke eingefügt - der Literatur zufolge genügt ja eine einzige.
     
  11. Hat jemand Erfahrung mit der Problematik? Welche Methode wäre zu empfehlen?

    Danke und Gruß!

    Michi
     
  12. Wenn die ConvertToTable-Methode bei Dir funzt würde ich sie auch verwenden. Damit bist du flexibler, vor allem wenn einmal doch noch eine Spalte hinzu käme. Die Tabellenformatierung mache ich nachträglich in Word indem ich nach Abarbeiten des Codes noch ein Formatierungsmakro drüberschicke (in der Word-Vorlage hintelegt und in Access gestartet). Ansonsten wird nämlich in Word immer die Standard-Formatvorlage für Tabellen verwendet.
    Alternativen gibt es schon, du könntest mit Schleifen die einzelnen Spalten und Zeilen durchlaufen, schneller wird diese Methode aber wohl kaum sein.
     
  13. Email mit verschiedenem Anhang aus Access

    Tach auch!

    Ich hab jetzt nochmal alle relevanten Beiträge zum Thema "Wordtabelle von Access aus" durchgelesen und festgestellt, dass es relativ wenige Beiträge zu meiner Problematik gibt. Zum Thema "Word-Serienbriefe aus Access" gibt's tonnenweise Material, aber es wird deutlich weniger, wenn da nicht nur ein paar Felder in einem Brief gefüllt werden sollen, sonderne ne ganze Tabelle mit variabler Größe.

    Ich hab jetzt einfach mal mit ConvertToTable losgelegt, was mit dem folgenden Code auch einwandfrei funktioniert:

    Code:
    Ich hab das Teil aus dem obigen Dokument von Smaug, welches sich mit der Problematik "Word-Tabellen und VBA" befasst - genial übrigens!

    Der Code setzt die relevanten Daten meiner Access-Abfrage zu einem String zusammen und baut daraus anhand von Trennzeichen (hier Dilimiter) eine Tabelle, die auch gleich mit Daten gefüllt ist. Es wird also keine vorhandene Tabelle befüllt, sondern das ganze Ding komplett aufgebaut. Optimal bei variabler Tabellengröße und empfohlen bei größeren Datenmengen.

    Im unteren Code-Teil wird dann noch angewiesen, dass die Tabelle nicht einfach willkürlich in das Dokument gepappt werden soll, sondern an eine durch Textmarke definierte Stelle (habe diese einfach "Tabelle" genannt).

    Geht wie gesagt mit den paar Probefeldern alles einwandfrei und verdammt schnell. Nun aber zu meinen Problemen:

    1. Der Code steht in Word und wird in Word angestoßen - ich möchte aber, dass er einem Button in Access unterlegt ist. Was ist im Code zu ändern, damit er unter Access läuft?
    2. Wie löse ich das Problem mit der Formatierung? Die Spaltenüberschriften sollen grau hinterlegt und fett gedruckt werden. Die Spalten sollen eine feste Breite haben. Smaug löst das per VBA in Word. Wenn ich aber alle Funktionen von Word auch von Access abrufen kann, könnte ich das doch auch von Access aus anweisen, oder?
    3. Momentan werden noch alle Daten ausgegeben. Wie oben beschrieben, bräuchte ich aber Tabellen, die nach Empfänger gegliedert sind. Also ein separates Dokument für den einen Empfänger, ein weiteres für den nächsten. Ich habe das bei Berichten bisher immer mit Bericht und Unterbericht gelöst. Wie mache ich das hier? Mit Schleifen?
    4. Wie stelle ich ein, dass der ganze Ablauf in Word völlig unbemerkt im Hintergrund läuft (Word also gar nicht erst gestartet wird) und jedes separate Dokument gespeichert wird, bis das nächste erzeugt wird (Speichername gibt meine Access-Abfrage vor)?

    Vielen Dank für Eure Hilfe!

    Viele Grüße!

    Michi
     
  14. Hallo, folgendes fällt mir zu deinen Fragen ein:

    zu 1: für die Automatisierung von Word aus Access heraus brauchst du entsprechende Objektvariablen, wie auch schon im obigen Code, plus eine für die Word-Applikation.

    zu 2: Natürlich kannst du dann auch die Zellenformatierung aus Access heraus hinbekommen. Auch hierzu sollten sich Beispiele finden lassen.

    Zu 3: Ein separates Dokument für jeden Empfänger - dazu würde ich dann doch wieder eine Seriendruckvorlage einsetzen, die Briefe in einer Schleife einzeln anfordern, Stammdaten wie Anschrift, Anrede etc. den Seriendruckfeldern zuweisen und die Ausgabe um die Tabelle ergänzen.

    Zu 4: Auch das ist kein Problem, wenn du die Word-Applikation im Hintergrund unsichtbar werkeln lässt.
     
    Anne Berg, 1. November 2007
    #14
  15. Hallo Michi,

    ich bin gerade erst dabei, den Beitrag vom Beginn an durchzulesen. Und da dieser Beitrag interessant und gehaltvoll ist, wird es auch noch ein Weilchen dauern. Wenn ich daher jetzt schon Gedanken äußere, können diese möglicherweise daneben liegen. Ist hoffentlich nicht schlimm:

    (1) Tabelle mit festen Breiten und Formatierung
    Es ist doch auch möglich, Exceltabellen in Word einzufügen. Vielleicht lohnt sich der Umweg. Für das Füllen und Formatieren von Exceltabellen sind sicher eine Menge Erfahrungen und Beispiele vorhanden.
    Wie das Einfügen der Tabelle genau funktioniert und ob sich das automatisieren lässt, keine Ahnung.

    (2) In Word gibt es ebenso wie in Excel einen Makrorekorder. Wenn Du Dir also Deiner Mittel sicher bist, dann erstelle ein Dokument nach Deinen Wünschen und zeichne das auf. Der resultierende Code ist eine gute Ausgangsbasis zur Erstellung einer Automatisation. Zur Glättung der letzten Unebenheiten sind dann sicher auch die Kollegen der Word-Abteilung ansprechbar.

    (3) Manche wickeln ihren Schriftverkehr komplett mit Excel ab, insbesondere wenn tabellarische Darstellungen (Rechnungen) für das Dokument vorherrschend sind.

    Aber das Thema Word-Tabellen aus Access füllen liest sich auch spannend. Es wär schade, wenn es nicht weitergeführt wird.
     
Thema:

Email mit verschiedenem Anhang aus Access

Die Seite wird geladen...
  1. Email mit verschiedenem Anhang aus Access - Similar Threads - Email verschiedenem Anhang

  2. Fehler (0x800CCC78) beim Ausführen der Aufgabe "xx.yyyy@kabelmail.de - Nachrichten werden gesendet"

    in Microsoft Outlook Hilfe
    Fehler (0x800CCC78) beim Ausführen der Aufgabe "xx.yyyy@kabelmail.de - Nachrichten werden gesendet": Bei mir taucht im Outlook ständig folgender Fehler auf: (0x800CCC78) beim Ausführen der Aufgabe "xx.yyyy@kabelmail.de - Nachrichten werden gesendet": "Die Nachricht kann nicht gesendet werden....
  3. Serien-Email mit Anhang realisieren

    in Microsoft Outlook Hilfe
    Serien-Email mit Anhang realisieren: Hallo, wir müssen jedes Jahr eine Email mit unserer aktuellen Preisliste an über 300 Kunden versenden. Dazu können wir leider nur Outlook verwenden. Bisher haben wir es immer so gemacht, dass...
  4. alle bisherigen Emails nicht mehr vorhanden

    in Microsoft Outlook Hilfe
    alle bisherigen Emails nicht mehr vorhanden: Habe heute mit Hilfe von Strato-Mitarbeiter ein neues Passwort vergeben - erst für die Haupt-email-Adresse, danach für meine persönliche email-Adresse. Dann haben wir das Konto im Internet...
  5. eingehende Emails über bestimmtes Konto automatisch weiterleiten

    in Microsoft Outlook Hilfe
    eingehende Emails über bestimmtes Konto automatisch weiterleiten: Hallo! Ich würde gerne eingehende Emails automatisch (z.B) aus Outlook heraus an eine bestimmte Zieladresse weiterleiten. Das Programm von unserem Steuerbüro akzeptiert Rechnungen nur von einer...
  6. Aufgaben aus einer Excel-Tabelle an verschiedene E-Mail-Adressen verteilen

    in Microsoft Excel Hilfe
    Aufgaben aus einer Excel-Tabelle an verschiedene E-Mail-Adressen verteilen: Hallo Forum, ich bin noch nicht allzu lange registriert, konnte aber bereits viele Hilfen und interessante Ansätze aus den Beiträgen entnehmen, welche mir sehr geholfen haben. In der Hoffnung...
  7. Zugriff auf verschiedene Email-Konto

    in Microsoft Outlook Hilfe
    Zugriff auf verschiedene Email-Konto: Hallo, mein Problem besteht eigentlich schon, so lange ich Outlook verwende, es nerv jedoch ziemlich. Also: Ich habe 1 Standard-Konto + 2 Incl.nutzer Wenn ich nun auf ein Email-Konto -...
  8. anzeigen von emails verschiedener Konten in Outlook 2003

    in Microsoft Outlook Hilfe
    anzeigen von emails verschiedener Konten in Outlook 2003: Hallo, mit meinem Outlook 2003 rufe ich mehrere emailkonten ab. Meine Frage ist: kann man verschiedene emails in verschiedene Ordner anzeigen lassen. z.B. wenn eins meiner emailkonten...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden