Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

Serienbriefe mit ASP aus AccessDB in Word generieren

Letzter Beitrag 05-29-2008 17:41 von WolfgangHansMayer. 12 Antworten.
Seite 1 von 1 (13 Treffer)
Beiträge sortieren: Zurück Weiter
  • 05-29-2008 9:59

    Serienbriefe mit ASP aus AccessDB in Word generieren

    Hallo Freunde,

    habe Word2000 auf Server Win2003 IIS6.0 installiert. Alle Rechte sind exakt richtig vergeben. Bin schon seit Tagen auf der Suche nach der Lösung. Dachte auch schon eine Lösung gefunden zu haben: http://www.aspheute.com/artikel/20010319.htm Aber schon das Instanzieren:

    <%
    dim myWordDoc
    set myWordDoc = server.createobject("word.application")
    %>

    schlägt schon fehl.

    Das Worddokument kann ich mit einem <%response.redirect "...." %> -Link ohne Probleme öffnen.

    Es erscheint als Fehlermeldung lediglich eine 500er allgemeine Meldung
    Ich komme nicht weiter.

    Ich bitte dringend um Hilfe
    Wolfgang

    • IP-Adresse ist Registriert
  • 05-29-2008 11:07 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Hi Wolfgang

    Ich denke es wird dir wahrscheinlich jeder der antwortet erzählen, dass Word (oder Excel, oder ...) am Server alles andere als eine gute Idee ist.

    Warum muss es Word sein?  Was willst du denn genau erreichen?

    --
    Viele Grüße
    Hubert Daubmeier

    • IP-Adresse ist Registriert
  • 05-29-2008 13:05 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

     Hallo Hubert,

    Es muss natürlich nicht Word sein. Aber hier mein Projektvorhaben:

    AccessDB mit Adressen. ->Serienbrief über Website.

    Anlass: Normal generierte Print-Vorlagen können nicht exakt auf eine DinA4-Seite Programmiert werden.
    Wenn der Inhalt des Anschreiben größer ist als die erste Seite Verschieben sich alle weitern Seiten. So
    werden die Adressfelder nicht mehr richtig gesetzt.

    Jetzt dachte ich, mache ich das mit der word.application, aber Pustekuche, funzt nicht.

    Wenn´s was anderes gibt, dann bin da auch nicht abgeneigt.

    Gruß

    Wolfgang 

    • IP-Adresse ist Registriert
  • 05-29-2008 13:42 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Hallo,

    du könntest durchaus eine HTML-Seite generieren. Einen Seitenumbruch erzwingst du mit einem CSS-Page-Break (http://de.selfhtml.org/css/eigenschaften/printlayouts.htm#page_break_before). Dieser wird mittlerweile von den aktuellen Browsern berücksichtigt.

    Mit einer Template-Datei in der du Platzhalter ersetzt geht das auch sehr komfortabel. 

    Word-Application und -Dokumente hatte ich auch mal mit ASP verwendet, doch das lief nicht sehr stabil und ist sicherheitskritisch. Mit jedem Windowsupdate wurde es schwieriger den Zugriff lauffähig zu halten bis ich aufgab. Ich glaube zu diesem Zeitpunkt lief (wie bei dir auch auch) die Instanzierung immer auf einen Fehler 500. Die Funktion wurde aber nicht mehr unbedingt benötigt, war also nicht so schlimm.

    Grüße, Arno.

    • IP-Adresse ist Registriert
  • 05-29-2008 15:05 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Genau. Neben dem was Arno schon erwähnte könnte es auch eine Option sein, eine RTF Datei zu erzeugen. Beispiele wie das geht u.a. auf http://support.microsoft.com/kb/270906/  (da gibt es noch viel mehr im Internet). Es gibt auch fertige Controls, aber die kann man sich sparen, denn RTF ist ein einfaches Textformat.

    Oder der hier steigt ein bisschen tiefer in das Thema ein und probiert ein bisschen mehr aus http://www.devx.com/asp/Article/17964/1954. Wobei hier würde ich den Ansatz ändern und nicht zuerst eine Datei schreiben, sondern direkt die Daten streamen. Mime-Type und Dateinamen lässt sich auch im Header setzen.  

    Vor- oder Nachteil von RTF (kommt halt drauf an) ist dass so eine Datei pratisch von jedermann auf jedem System sofort weiterbearbeitet werden könnte. Inklusive drucken - geht halt auch im Jahr 2008 nix über Papier   :-)

    --
    Viele Grüße
    Hubert Daubmeier 

    • IP-Adresse ist Registriert
  • 05-29-2008 15:14 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Danke Arno,

    Das mit dem HTML habe ich verstanden, das mit der:

    "Template-Datei in der du Platzhalter ersetzt"

    habe ich nicht kappiert, wie machet man so was?

    Gruß

    Wolfgang.

    • IP-Adresse ist Registriert
  • 05-29-2008 15:18 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Hallo Hubert,

    das alles schaue ich mir mal in Ruhe an. Hab grad ein Problem mit meinem Lokalen Server.

    Die Seite in der das alles laufen soll ist nur für Mitglieder bestimmt. Insofern spielt es keine Rolle ob die RTF-Dateien weiterverarbeitet
    werden können. Aber dennoch ein wichtiger Hinweis!

    Danke Hubert,

    Gruß

    Wolfgang

     

    • IP-Adresse ist Registriert
  • 05-29-2008 15:38 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Alternativ könntest Du noch OpenXML / WordML generieren.

    Alex

    • IP-Adresse ist Registriert
  • 05-29-2008 16:01 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Hallo Alex,

    wie soll das gehen habe keine Ahnung.
    Villeicht ein Beispiel

    Danke

    Gruß
    Wolfgang

    • IP-Adresse ist Registriert
  • 05-29-2008 16:50 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Wolfgang, du könntest 3 Dateien auf dem Server ablegen.  Jeweils eine als Template für den Kopf, den Inhalt des Body und den Fuß, die den jeweiligen HTML-Text des Bereichs enthalten. Im Body-Template schreibst du z.B. statt des Nachnamens den Platzhalter @nachname@.

    - Kopf-Template wird über FSO eingelesen und mit Response.write ausgegeben.
    - Für den eigentlichen Serienbrief in einer Schleife datensatzweise das Body-Template mit FSO in eine Variable einlesen, mit Replace die Platzhalter z.B. @nachname@ durch den Datenbankinhalt "Mayer" ersetzen und ausgeben.
    - Fuß-Template einlesen und ausgegeben.

    Sollten Kopf und Fuß nicht lang sein, geht es evtl. einfacher die HEAD-TAGs direkt per ASP auszugeben.
    Der "Einfügetext" kann in den Datenbankfeldern als HTML formatiert werden.
    Für Designänderungen am Serienbrief genügt eine Änderung des Templates ohne das ASP-Skript ändern zu müssen.

    Grüße, Arno. 

    WolfgangHansMayer:

    Danke Arno,

    Das mit dem HTML habe ich verstanden, das mit der:

    "Template-Datei in der du Platzhalter ersetzt"

    habe ich nicht kappiert, wie macht man so was?

    Gruß

    Wolfgang.

     
    • IP-Adresse ist Registriert
  • 05-29-2008 16:58 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Hallo Arno,

    leider funzt das nicht mit http://de.selfhtml.org/css/eigenschaften/printlayouts.htm#page_break_before weil der Text
    aus einer AccessDB eingefügt wird. Der HTML-Tabel wird weiter nach unten verschoben der Break läuft ins Leere.

    <Table>
    <%do until RS.eof%>
    <tr><td><%response.write RS("text")%></td>
    </tr>
    <%RS.movenext%>
    <%loop%>
    </table>

    an welcher Stelle muss ich den CSS-Break setzen?

    Gruß
    Wolfgang

     

     

     

    • IP-Adresse ist Registriert
  • 05-29-2008 17:10 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    Der Pagebreak funktioniert auch nicht innerhalb einer Tabelle.

    Du musst dann die Tabelle jeweils schließen und wieder eine neue öffnen, wenn du auf eine Tabelle bestehst.

    <%do until RS.eof%>
      <Table>
        <tr><td><%response.write RS("text")%></td>
        </tr>
      </table>
      <h4 style="page-break-before:always; height:0; line-height:0"></h4>
      <%RS.movenext%>
    <%loop%>

    WolfgangHansMayer:

    Hallo Arno,

    leider funzt das nicht mit http://de.selfhtml.org/css/eigenschaften/printlayouts.htm#page_break_before weil der Text
    aus einer AccessDB eingefügt wird. Der HTML-Tabel wird weiter nach unten verschoben der Break läuft ins Leere.

    <Table>
    <%do until RS.eof%>
    <tr><td><%response.write RS("text")%></td>
    </tr>
    <%RS.movenext%>
    <%loop%>
    </table>

    an welcher Stelle muss ich den CSS-Break setzen?

     
    • IP-Adresse ist Registriert
  • 05-29-2008 17:41 Antwort zu

    AW: Serienbriefe mit ASP aus AccessDB in Word generieren

    hallihallo,

    es funktioniert.

    Allen meinen Mitstreitern besten Dank

    Im speziellen dir Arno.

    Gruß
    Wolfgang

    • IP-Adresse ist Registriert
Seite 1 von 1 (13 Treffer)