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 Eberhard, Aber das Thema Word-Tabellen aus Access füllen liest sich auch spannend. Worauf beziehst du dich da? Meinst du Smaugs Dokumentation... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Michi, 21. September 2007.

  1. Email mit verschiedenem Anhang aus Access


    Hallo Eberhard,
    Worauf beziehst du dich da? Meinst du Smaugs Dokumentation oder ein MOF-Thema?
     
    Anne Berg, 1. November 2007
    #16
  2. \@ Anne: Nun, ich denke, aus diesem Thema. Zumindest beim Überfliegen (beim Lesen bin ich noch) sehe ich da was in #10 und #13, und zeitlich ist das noch nicht lange her.

    Da das Thema aber insgesamt nun sechs Wochen läuft und eine Lösung noch nicht unmittelbar bevorsteht (= mein Eindruck), Michi aber sicher mal zu Potte kommen will, habe ich mir erlaubt, einige Gedanken einzustreuen.

    "Der Kopf ist rund, damit das Denken die Richtung wechseln kann."
     
  3. \@ Anne

    Hallo Anne, vielen Dank für Deine Antwort. Wie müsste ich mir eine Änderung im Code vorstellen, damit er von Access aus läuft? Bin leider noch VBA-Anfänger und kann die einzelnen Bestandteile von VBA noch nicht richtig anordnen bzw. einsetzen. Dass in Access Dinge wie "Active.Document" oder "db.close" nicht angewendet werden können ist mir klar, aber was muss ich stattdessen einbauen?

    Zu Deinem Vorschlag mit dem Serienbrief: Ich habe trotzdem das Gefühl, dass ein Serienbrief irgendwie das Falsche für meine Verwendung wäre. Wie erwähnt, gehen keine normalen Briefe mit Anschrift und so weiter raus. Eigentlich bleibt alles um die Tabelle herum konstant, weil da nur ein Logo und ne Überschrift steht (siehe meine obigen Downloads mit der Dokumentenvorlage). Ich werden folglich auch nur mit einer Textmarke im Dokument arbeiten, die dem Code sagt, wo die Tabelle hin soll. Ist ein Serienbrief überhaupt für Tabellen variabler Länge geeignet?

    @ Eberhard

    Hallo Eberhard, auch Dir herzlichen Dank für Deine Vorschläge und Deine lobenden Worte zum Thema. Freut mich, wenn es Dich interessiert *Smilie

    Sicher hätte ich in Excel bzw. "über Excel" komfortablere Möglichkeiten, Tabellen zu verwalten und zu formatieren. Schließlich ist Excel ja DAS Tabellenprogramm.

    Ich hab auch bereits schon mal meine Daten beim aktuellen Projekt nach Excel exportiert. Nur hat Excel beim Erhalt mancher Daten offenbar das Format nicht erkannt und nur ### angezeigt (wie oben schon mal berichtet) - und das lag definitiv nicht am Klassiker "Spalte zu schmal".

    Ich bin mir zwar sicher, dass sich das alles auch irgendwie lösen ließe, aber ich will es erstmal mit Word versuchen. Ist glaube ich für die Eingabe von längeren Texten (und keine Zahlen) die bessere Alternative - und schließlich sollen ja Protokolldaten in die Tabellen, die auch mal recht lang sein können.

    Vielen Dank Euch allen!

    Ürbigens hab ich mal mit dem Formatieren von Zellen herumgebastelt und mit der folgenden Codezeile an vorletzter Stelle immerhin erreicht, dass eine Zelle die gewünschte graue Farbe annimmt:

    Code:
    Juhuu *tongue.gif*

    Allerdings hab ich es nicht hinbekommen, die ganze erste Zeile so einzufärben. Offensichtlich kann man aber dem Befehl ConvertToTable gewisse Attribute wie "Format" direkt mitgeben, wäre natürlich eleganter:

    http://msdn.microsoft.com/archive/de.../D4/S5A98A.asp

    Viele Grüße!

    Michi
     
  4. Email mit verschiedenem Anhang aus Access

    Hallo Michi,

    inzwischen habe ich etwas gelesen, und eigentlich war Dein Interesse von Anfang an bei der Wordtabelle.

    Um auf Word und die zugehörigen Befehle und Funktionen zugreifen zu können, musst Du erst eine Instanz anlegen, etwa so
    Code:
    Das hatte jedenfalls in der Bsp.-DB in #10 noch gefehlt.
     
  5. Hallo Michi,
    hier irrst du, es muss lediglich stets der Objektbezug hinzugefügt werden. In Anlehnung an Eberhards letzten Beitrag hieße es dann z.B. oApp.ActiveDocument.
    Was den Serienbrief betrifft, so magst du Recht haben, dass dies in deinem Fall nicht in Frage kommt.
     
    Anne Berg, 2. November 2007
    #20
  6. Hallo!

    Es geht jetzt!! Ich hab - wie von Euch empfohlen - zuerst ne Word-Instanz in Access geöffnet und dann den bekannten Code durchlaufen lassen - funzt super.

    Der Code, den ich einem Button in Access zugeordnet habe, lautet nun:

    Code:
    Vielen Dank für Deinen Code zur Öffnung einer Word-Instanz, Eberhard! Wie ich das Ganze verstanden habe, öffnet er auch wirklich nur eine Word-Instanz und gibt noch keine bestimmte Word-Vorlage an, mit der dann weitergearbeitet werden soll (mehr hab ich ja auch erstmal nicht gebraucht).

    Ich hab das jetzt mal wie oben im Code zu sehen ist so umgebaut, dass sich die Word-Vorlage sichtbar öffnet, damit ich das Ergebnis seh.

    Es öffnet sich nun ein neues Word-Dokument auf Basis der Vorlage und eine Tabelle mit den Abfragedaten wird darin aufgebaut - astrein!

    Trotzdem will ich das Ganze sauber lösen, bevor ich weiter mache, deshalb meine Frage: Der obenstehende Code wirkt trotzdem noch in Teilen auf mich so, wie wenn Access von Word aus ferngesteuert werden soll - obwohl ich ja in Access bin.

    Könnte ich mir nicht Sachen wie

    Code:
    sparen, wenn die "Database" eh schon offen ist? Nur, damit da keine unnötigen Prozesse laufen.

    Nochmals vielen Dank für Eure Unterstützung!!!

    Michi
     
  7. Code:
     
  8. Email mit verschiedenem Anhang aus Access

    Code:
    Dieser Abbruch ist ungünstig. Auch bei vorzeitigem Abbruch sollen die Objektvariablen (db, rs, objWord usw.) geschlossen werden.
    siehe www.donkarl.com?FAQ7.5
     
  9. Hab es auf CurrentDb geändert - vielen Dank!

    Zu dem Schließen der Objektvariablen: Wenn mich nicht alles täuscht, hab ich in meinem Code doch folgende Variablen:
    • objWord
    • rs
    • wdDoc
    • fld

    Eigentlich ist ja "db" auch noch dabei, aber das muss ich ja, wenn ich Donkarl richtig interpretiere, nicht beenden, weil ich es ja auch nicht explizit gestartet habe (ist ja die momentane Datenbank, in der ich mich befinde).

    Ok, wie setz ich das jetzt um, diese Objektvariablen bei einem vorzeitigen Ausstieg zu beenden. Es geht ja um folgende Zeile:

    Code:
    Müsste ich dann statt "Exit Sub" etwa sowas wie "rs.Close, fld.Close..." anhängen oder passt das so nicht in den Kontext?
     
  10. Entweder so:
    Code:
    oder eleganter mit Zeilenmarke (siehe GoTo)
    Code:
    Frage: Läuft der Teil wirklich so wie beabsichtigt, also Anlegen der Einzeldokumente mit den passenden Einträgen und gewünschter Formatierung - quasi versandfertig?
    Mit den Daten aus Deiner DB (#10) und allen von Dir gezeigten Codevarianten scheint es meiner Meinung nach noch in den Schleifen durcheinanderzugehen. Ich habe da etwas umstellen müssen.
    Wenn Du es also wirklich fertig hast, dann lade bitte noch einmal ein Beispiel hoch. Wir hätten dann auch eine gemeinsame Diskussionsgrundlage.
     
  11. Ich hab mich für die elegante Variante entschieden *Smilie - vielen Dank!

    Hab die Zeilenmarke einfach ganz nach unten gesetzt und scheint auch zu funktionieren. Kann es sein, dass bei Deinem Code-Vorschlag jeweils das "Set" vor dem Schließbefehl gefehlt hat?

    Zu Deiner Frage, Eberhard: Ich hab mein gesamtes Projekt der Übersicht halber in Teillösungen zerlegt. Meiner Meinung nach ergeben sich folgende Lösungsbereiche:
    • Tabellenaufbau in Word
    • Datenauswahl für die Tabellendaten
    • Versand der Dokumente per Email

    Da ich mich momentan ausschließlich mit dem ersten Bereich befasse, habe ich den Code, den Du unter #10 sehen kannst, nicht weiter beachtet und erstmal den reinen Tabellenaufbau in Word lösen wollen.

    Noch habe ich keine Ahnung, wie ich den Code aus #10 von Smaug mit dem von mir aktuell bearbeiteten in Einklang bringen soll.

    Was den aktuellen Tabellen-Code betrifft: Ja, alles, was ich bisher wollte, funktioniert auch damit. Es öffnet sich ein Word-Dokument, auf Basis einer vorher formatierten Word-Vorlage und eine Tabelle wird mit den Daten eingebaut. Allerdings mit zwei wesentlichen Einschränkungen:
    • die Formatierung passt mir noch nicht ganz
    • die gelieferten Daten in der Tabelle basieren zwar auf einer Abfrage, aber diese gibt noch alle Daten für alle Empfänger der Dokumente aus, statt nur die Daten, die dem jeweiligen einzelnen Empfänger was angehen

    Momentan bin ich grade dabei, die Formatierung hinzubekommen. Hochinteressant, was man diesem ConvertToTable so alles auf den Weg geben kann: http://msdn2.microsoft.com/de-de/lib...le(VS.80).aspx

    Mit dem Zusatz "Format" kann man z. B. Formate aus der AutoFormat-Liste festlegen, in dem dann die Tabelle erscheint.

    Wenn ich z. B. die entsprechende Zeile meines Codes wie folgt ändere

    Code:
    bekomme ich eine Tabelle, die eben nach dem AutoFormat "Professional" formatiert wurde - sieht gar nicht mal schlecht aus.

    Da man diese AutoFormate beliebig ändern kann, hätte ich natürlich die Möglichkeit, mir einen Haufen VBA-gesteuerte Formatierung zu sparen, wenn ich einfach in den AutoFormaten festlege, wie die Tabelle aussehen soll.

    Allerdings mache ich mich da irgendwie schon sehr abhängig von der Auswahl, die mir Microsoft da bietet und ich müsste das auf jedem PC, auf dem meine Datenbank laufen soll, vorher passend einstellen (oder die Verfügbarkeit des gewünschten AutoFormats prüfen).

    Ich such da mal weiter, ob es nicht eine Möglichkeit gibt, die Spaltenbreite zu definieren und die Spaltenüberschriften fett, zentriert und mit grauem Hintergrund darzustellen. Mehr will ich ja gar nicht *Smilie

    Sobald das mit der Formatierung läuft, muss ich die Teillösung "Tabellenaufbau in Word" in den restlichen Zusammenhang bringen.

    Hier der aktuell von mir bearbeitete Code:

    Code:
    Unten habe ich noch die aktuellste Version meiner Datenbank und meiner Word-Vorlage angehängt. Auf Wunsch auch in anderen Access-Versionen.
     
  12. (1) Mir nützt nur eine Office2000-Version.

    (2) Stimmt: Das "Set =" hatte ich vergessen.

    (3)
    Das meinte ich mit den Schleifen, die nicht in Ordnung sind.

    Denn ich gehe eher so ran:
    Erst die Datensätze pro Empfänger ermitteln,
    dann an Word übergeben,
    Dokument fertigstellen,
    (E-Mail-Erstellung),
    nächster Empfänger.
    So ist wohl auch der Programmablauf.

    Formatierung kommt später.
     
  13. Email mit verschiedenem Anhang aus Access

    Du hast recht! Es wäre blödsinnig, sich schon jetzt mit der Formatierung aufzuhalten. Die ist das kleinste Problem. Die von Dir angegebene Reihenfolge stimmt genau!

    Dann ist es jetzt wohl wichtig, dafür zu sorgen, dass Access nur die Daten an Word weitergibt, die auch für den jeweiligen Empfänger bestimmt sind.

    In der Tabelle "Protokolldaten" habe ich (wie der Name schon sagt) alle Daten, die für die Erstellung und Versendung der Protokolle notwendig sind. Auch der Empfänger ist dort im gleichnamigen Datenfeld hinterlegt.

    In einem früheren Projekt musste ich das Problem mit der Datenfilterung über den Umweg eines Endlosformulars lösen. In diesem Endlosformular war jeder Empfänger aufgelistet und mit einem Button im gleichen Formular (gleich neben dem Empfänger) wurde unter anderem eine Abfrage gestartet, die die ganzen Daten nach dem Empfänger gefiltert hat, der gerade im aktuellen Endlosformular aktiv angezeigt wurde.

    Wäre hier natürlich auch denkbar, aber das würde bedeuten, dass ich die ganze Liste mit Empfängern "durchklicken" müsste. Und eigentlich sollte diese "Stapelverarbeitung" ja im Hintergrund laufen.

    Ich habe wirklich nicht die geringste Ahnung, wie ich das anders lösen könnte.

    Anbei übrigens mein aktuelles "Paket" in Access 2000. Der entscheidende Button liegt im Formular "Ereigniserfassung".
     
  14. Nachfrage: Wieviel Datensätze pro Empfänger können maximal anfallen?

    Ich tendiere nämlich dazu, die Datensätze zeilenweise in die vorhandene Vorlage zu schreiben. Da gibt es kein Formatierungsproblem.
    Das soll zwar langsamer sein als die ConcertToTable-Methode, wird sich aber kaum auswirken, da laufend Worddokumente geöffnet und nach dem Füllen abgespeichert und geschlossen werden müssen.
     
  15. Das ist eben genau das Problem: Es können schon einige Datensätze pro Empfänger sein. Je nachdem, wieviel in der Nacht auf Streife vorgefallen ist und wie groß der bewachte Betrieb ist, können das bis zu 30 oder 40 Datensätze sein - pro Empfänger wohlgemerkt und derzeit sind es rund 10 Empfänger (Tendenz steigend). Auch wenn nicht jeder Empfänger immer gleich so viele Vorkommnisse berichtet bekommt. Eine Obergrenze lässt sich aber nicht sagen.

    Klar gibt es auch andere Möglichkeiten, ne Word Tabelle zu füllen (TransferText, Paste etc., siehe Word-Tabellen-Anleitung von Smaug und andere Quellen), aber aufgrund der Verarbeitungsgeschwindigkeit habe ich mich erstmal für ConvertToTable entschieden.

    Wobei es dabei ja nicht bleiben muss, wenn ein anderes Vorgehen besser geeignet ist oder sich ganz einfach noch am ehesten verwirklichen lässt.

    Zu Deinem Argument mit dem Öffnen und Schließen von Word-Dokumenten: Läuft das eigentlich bei mir noch so, wenn ich Word das Dokument gar nicht öffnen lasse und alles unbemerkt läuft? Ich lass es momentan ja nur deshalb sichtbar, damit ich die Ergebnisse sehe.
     
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