Ich muss mehrere Word-Dokumente zu einem grossen Dokument zusammenfassen, nur bekomme ich ständig Fehler:
procedure TmpDokAnhaengen(Datei: String);<br>
var<br>
wa: TWordApplication;<br>
qDoc, zDoc: _Document;<br>
qRange, zRange: Range;<br>
oFalse, oTrue, oDatName, RangeStart, RangeEnde: OleVariant;<br>
dummy: Integer;<br>
begin<br>
oFalse := False;<br>
oTrue := True;<br>
<br>
wa := TWordApplication.Create(Tools);<br>
wa.Connect;<br>
<br>
oDatName := Datei;<br>
qDoc := wa.Documents.Open(oDatName, oFalse, oFalse, oFalse, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, oFalse);<br>
qRange := qDoc.Get_Content;<br>
qRange.Copy;<br>
<br>
oDatName := DRUCKPFAD + 'Ziel.doc';<br>
zDoc := wa.Documents.Open(oDatName, oFalse, oFalse, oFalse, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, oFalse);<br>
<br>
dummy := qDoc.Range(EmptyParam, EmptyParam).Get_End_;<br>
RangeStart := Dummy -1;<br>
RangeEnde := Dummy;<br>
<br>
{ Variante 1 }<br>
zDoc.Range(RangeStart, RangeEnde).Paste;<br>
<br>
{ Variante 2 }<br>
oDatName := Datei;<br>
zDoc.Range(RangeStart, RangeEnde).InsertFile(oDatName, EmptyParam, EmptyParam, oFalse, oFalse);<br>
<br>
zDoc.Save;<br>
<br>
zDoc.Close(oTrue, EmptyParam, EmptyParam);<br>
qDoc.Close(oFalse, EmptyParam, EmptyParam);<br>
wa.Disconnect;<br>
wa.Free;<br>
end;<br>
<br>
Beide Varianten führen zu der Meldung "Ausnahmefehler im Server". Ich habe WinXP und Word2003.
Ich weiss das Variante 1 funktionieren muss, da ich auf den selben Rechner sowas schon erfolgreich gemacht habe (habe irgendeine Kleinigkeit übersehen?).
mfg,
bp
procedure TmpDokAnhaengen(Datei: String);<br>
var<br>
wa: TWordApplication;<br>
qDoc, zDoc: _Document;<br>
qRange, zRange: Range;<br>
oFalse, oTrue, oDatName, RangeStart, RangeEnde: OleVariant;<br>
dummy: Integer;<br>
begin<br>
oFalse := False;<br>
oTrue := True;<br>
<br>
wa := TWordApplication.Create(Tools);<br>
wa.Connect;<br>
<br>
oDatName := Datei;<br>
qDoc := wa.Documents.Open(oDatName, oFalse, oFalse, oFalse, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, oFalse);<br>
qRange := qDoc.Get_Content;<br>
qRange.Copy;<br>
<br>
oDatName := DRUCKPFAD + 'Ziel.doc';<br>
zDoc := wa.Documents.Open(oDatName, oFalse, oFalse, oFalse, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, oFalse);<br>
<br>
dummy := qDoc.Range(EmptyParam, EmptyParam).Get_End_;<br>
RangeStart := Dummy -1;<br>
RangeEnde := Dummy;<br>
<br>
{ Variante 1 }<br>
zDoc.Range(RangeStart, RangeEnde).Paste;<br>
<br>
{ Variante 2 }<br>
oDatName := Datei;<br>
zDoc.Range(RangeStart, RangeEnde).InsertFile(oDatName, EmptyParam, EmptyParam, oFalse, oFalse);<br>
<br>
zDoc.Save;<br>
<br>
zDoc.Close(oTrue, EmptyParam, EmptyParam);<br>
qDoc.Close(oFalse, EmptyParam, EmptyParam);<br>
wa.Disconnect;<br>
wa.Free;<br>
end;<br>
<br>
Beide Varianten führen zu der Meldung "Ausnahmefehler im Server". Ich habe WinXP und Word2003.
Ich weiss das Variante 1 funktionieren muss, da ich auf den selben Rechner sowas schon erfolgreich gemacht habe (habe irgendeine Kleinigkeit übersehen?).
mfg,
bp
Comment