Daten an Word senden



  • Hallo Coders,

    folgendes Problem, ich möchte über WordApplication Daten an Word senden um einen Bericht zu erstellen und zu drucken. Das Problem besteht besteht darin das sich Word nur im Hintergrund öffnet und die übergebenen Variablen nicht dargestellt werden! Selbst eine Fehlermeldung fehlt.

    Danke schon mal für die Hilfe



  • @NewCodi

    Wenn wir dir bei deinem Problem weiterhelfen sollen, benötigen wir ein bisschen Code ... Sonst lässt sich der Fehler schwer eingrenzen!



  • also so...

    void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    {
    AnsiString Name="Otto";
    int Alter=100;
    
    WordApplication1->Connect();
    WordApplication1->Documents->Add();
    WordApplication1->Selection->Font->Bold=true;
    WordApplication1->Selection->Font->Underline;
    WordApplication1->Selection->TypeText(StringToOleStr("Überschrift"));
    WordApplication1->Selection->TypeParagraph();
    WordApplication1->Selection->TypeParagraph();
    WordApplication1->Selection->TypeText(StringToOleStr("Name:    " + AnsiString(Name)));
    WordApplication1->Selection->TypeParagraph();
    WordApplication1->Selection->TypeText(StringToOleStr("Alter:   " + IntToStr(Alter)));
    
    //Speicherort - Angabe
    WordApplication1->ActiveDocument->SaveAs(OleVariant(StringToOleStr("C:\\Hallo")));
    
    }
    

    😕



  • Also sichtbar machen kannst du es mit

    WordApplication1->Visible = true;

    evtl. solltest du noch mit
    WordApplication1->Selection->Font->Size = 11;
    die Schriftgröße angeben.

    Dann funktioniert es bei mir.



  • Hallo maam

    dann bekomme ich folgenden Fehler

    "E2247 Zugriff auf TWordApplication::Visible nicht möglich"

    un nu? 😮



  • WordApplication ist doch sicherlich abhängig davon ob Word überhaupt installiert ist, gell? Wie kann ich das feststellen? Und kann ich das genauso auch in Excel abspeichern?



  • Guten Morgen NewCodi

    Also ich habe jetzt mal die ganze Sache getestet mit folgendem Code

    void __fastcall TForm1::Button1Click(TObject *Sender)
      {
      AnsiString Test = "Hello World";
      WordApplication1->Connect();
      WordApplication1->Visible = true;
      WordApplication1->Documents->Add();
      WordApplication1->Selection->Font->Size = 12;
      WordApplication1->Selection->TypeText(StringToOleStr(Test));
      }
    

    und es öffnet sich Word, ein neues Dokument, in dem "Hello World" steht.



  • Noch was zum Thema, ist zwar Delphi, lässt sich aber ziemlich gut für den BCB umstricken:
    http://www.djpate.freeserve.co.uk/AutoWord.htm#WordStarting


Anmelden zum Antworten