Discussion:
Tabelle in Word aus Access füllen
(zu alt für eine Antwort)
Dieter Öschay
2008-09-03 05:31:39 UTC
Permalink
Hallo,

ich habe 2 Rechner einer mit Windows 2000 und Office 2000 der andere
mit Windows XP prof und Office 2000.

Auf beiden gibt es ein Worddocument, welches als Vorlage dient. In
diesem Document sind mehrere Tabellen. Diese werden aus einer
Access-DB beschrieben und zwar so:

WordObj.ActiveDocument.Tables(3).Cell(3, 3).Range.Text = Eintrag
WordObj.ActiveDocument.Tables(1).Cell(4, 2).Range.Text = Dr!BefundNr

Das Problem dabei ist, dass die Zellen in der Tabelle bei W 2000
verschieden nummeriert sind. Bei W2000 ist Cell(3,2) das gleiche wie
unter W XP Cell(3,1) obwohl es sich um exact das gleiche Word-Document
handelt.

Ich weiss jetzt nicht ob dies mit dem Betriebssystem zusammenhängt
aber ich würde gerne wissen warum dies so ist. Vielleicht wiess es
hier jemand. Wäre super.
--
Dieter Öschay
Cindy M.
2008-09-15 12:19:06 UTC
Permalink
Hi Dieter,

Bist Du 100% sicher, dass die Vorlagen die gleiche sind? Ich kann mir
nicht vorstellen, wie das Beschriebene wahr sein könnte, egal der
Version Windows oder Word.

Es wäre aber bestimmt besser, wenn Du Textmarken in die Tabellenzellen
einfügen würdest, und diese statt die Zellen ansprichst. Eher

WordObj.ActiveDocument.Bookmarks("Eintrag").Range.Text = Eintrag

Du würdest in die Zelle klicken (blinkende Einfügemarke, nicht
Markierung!) Dann Einfügen/Textmarke und den Namen eingeben (Eintrag).
Quittieren.
Ich habe 2 Rechner einer mit Windows 2000 und Office 2000 der andere
mit Windows XP prof und Office 2000.
Auf beiden gibt es ein Worddocument, welches als Vorlage dient. In
diesem Document sind mehrere Tabellen. Diese werden aus einer
WordObj.ActiveDocument.Tables(3).Cell(3, 3).Range.Text = Eintrag
WordObj.ActiveDocument.Tables(1).Cell(4, 2).Range.Text = Dr!BefundNr
Das Problem dabei ist, dass die Zellen in der Tabelle bei W 2000
verschieden nummeriert sind. Bei W2000 ist Cell(3,2) das gleiche wie
unter W XP Cell(3,1) obwohl es sich um exact das gleiche Word-Document
handelt.
Ich weiss jetzt nicht ob dies mit dem Betriebssystem zusammenhängt
aber ich würde gerne wissen warum dies so ist. Vielleicht wiess es
hier jemand. Wäre super.
Cindy Meister
Co-Autor von »Microsoft Word-Programmierung Das Handbuch« (MS Press)
http://www.word.mvps.org
http://homepage.swissonline.ch/cindymeister

Rückfragen & Antworten nur in der Newsgroup, bitte!
Dieter Öschay
2008-09-16 12:46:57 UTC
Permalink
Hi Cindy,
Post by Cindy M.
Hi Dieter,
Bist Du 100% sicher, dass die Vorlagen die gleiche sind? Ich kann mir
nicht vorstellen, wie das Beschriebene wahr sein könnte, egal der
Version Windows oder Word.
ich habe die Vorlage eigens nochmal kopiert um ganz sicher zu gehen.
Post by Cindy M.
Es wäre aber bestimmt besser, wenn Du Textmarken in die Tabellenzellen
einfügen würdest, und diese statt die Zellen ansprichst. Eher
WordObj.ActiveDocument.Bookmarks("Eintrag").Range.Text = Eintrag
ja ich glaube damit wirds sicherer.
Post by Cindy M.
Du würdest in die Zelle klicken (blinkende Einfügemarke, nicht
Markierung!) Dann Einfügen/Textmarke und den Namen eingeben (Eintrag).
Quittieren.
das verstehe ich nicht. Das ganze läuft ohne Benutzereingriff. Sinn
ist nur ein Ausdruck auf den standarddrucker des erstellten Dokuments.
Post by Cindy M.
Ich habe 2 Rechner einer mit Windows 2000 und Office 2000 der andere
mit Windows XP prof und Office 2000.
Auf beiden gibt es ein Worddocument, welches als Vorlage dient. In
diesem Document sind mehrere Tabellen. Diese werden aus einer
WordObj.ActiveDocument.Tables(3).Cell(3, 3).Range.Text = Eintrag
WordObj.ActiveDocument.Tables(1).Cell(4, 2).Range.Text = Dr!BefundNr
Das Problem dabei ist, dass die Zellen in der Tabelle bei W 2000
verschieden nummeriert sind. Bei W2000 ist Cell(3,2) das gleiche wie
unter W XP Cell(3,1) obwohl es sich um exact das gleiche Word-Document
handelt.
Ich weiss jetzt nicht ob dies mit dem Betriebssystem zusammenhängt
aber ich würde gerne wissen warum dies so ist. Vielleicht wiess es
hier jemand. Wäre super.
Cindy Meister
Co-Autor von »Microsoft Word-Programmierung Das Handbuch« (MS Press)
http://www.word.mvps.org
http://homepage.swissonline.ch/cindymeister
Rückfragen & Antworten nur in der Newsgroup, bitte!
--
Dieter Öschay
Cindy M.
2008-09-17 13:57:53 UTC
Permalink
Hi Dieter,
Post by Dieter Öschay
Post by Cindy M.
Du würdest in die Zelle klicken (blinkende Einfügemarke, nicht
Markierung!) Dann Einfügen/Textmarke und den Namen eingeben (Eintrag).
Quittieren.
das verstehe ich nicht. Das ganze läuft ohne Benutzereingriff. Sinn
ist nur ein Ausdruck auf den standarddrucker des erstellten Dokuments.
Ich beschreibe nur, wie Du die Vorlage vorbereiten musst. Die Textmarken
sind noch nicht drin, oder?

Cindy Meister
Co-Autor von »Microsoft Word-Programmierung Das Handbuch« (MS Press)
http://www.word.mvps.org
http://homepage.swissonline.ch/cindymeister

Rückfragen & Antworten nur in der Newsgroup, bitte!
Dieter Öschay
2008-09-26 08:34:48 UTC
Permalink
Post by Cindy M.
Hi Dieter,
Post by Dieter Öschay
Post by Cindy M.
Du würdest in die Zelle klicken (blinkende Einfügemarke, nicht
Markierung!) Dann Einfügen/Textmarke und den Namen eingeben (Eintrag).
Quittieren.
das verstehe ich nicht. Das ganze läuft ohne Benutzereingriff. Sinn
ist nur ein Ausdruck auf den standarddrucker des erstellten Dokuments.
Ich beschreibe nur, wie Du die Vorlage vorbereiten musst. Die Textmarken
sind noch nicht drin, oder?
es gibt keine Textmarken nur Tabellen. Das Problem ist, dass auf einem
Rechner die Cell(3, 3).Range.Text ist und auf dem anderen Rechner die
gleiche Zelle der Tabelle Cell(3, 2).Range.Text ist.
Die Tabelle ist nicht von mir. Es gibt inerhalb dieser Tabelle nochmal
eine Tabelle und es sind Zeilen zusammengefasst ist ganz grosser Mist
den ich mal aufräumen muss.
Post by Cindy M.
Cindy Meister
Co-Autor von »Microsoft Word-Programmierung Das Handbuch« (MS Press)
http://www.word.mvps.org
http://homepage.swissonline.ch/cindymeister
Rückfragen & Antworten nur in der Newsgroup, bitte!
--
Dieter Öschay

Frank Müller
2008-09-15 23:34:42 UTC
Permalink
Hallo Dieter,
Post by Dieter Öschay
ich habe 2 Rechner einer mit Windows 2000 und Office 2000 der andere
mit Windows XP prof und Office 2000.
Auf beiden gibt es ein Worddocument, welches als Vorlage dient. In
diesem Document sind mehrere Tabellen. Diese werden aus einer
WordObj.ActiveDocument.Tables(3).Cell(3, 3).Range.Text = Eintrag
WordObj.ActiveDocument.Tables(1).Cell(4, 2).Range.Text = Dr!BefundNr
Ich befülle ebenfalls oft Word Dokumente bzw. darin enthaltene
Tabellen mit Daten aus Access.

Allerdings verwende ich eine etwas andere Syntax als du.

Set Zelleninhalt = WordObj.ActiveDocument.Tables(1).Cell(3,3).Range
Zelleninhalt.InsertAfter Eintrag ' Wenn "Eintrag" eine Variable ist.

Das klappt mit allen Access, Word und Betriebssystemen.
(bis einschl. 2003, Office 2007 habe ich nicht)

Gruß,
Frank
Dieter Öschay
2008-09-16 12:50:08 UTC
Permalink
Hallo Frank,

danke für Deinen Tip, aber dadurch ändert sich nichts.

Werde versuchen heraus zu finden ob es am BS oder an der
Office-Version liegt.
Post by Frank Müller
Hallo Dieter,
Post by Dieter Öschay
ich habe 2 Rechner einer mit Windows 2000 und Office 2000 der andere
mit Windows XP prof und Office 2000.
Auf beiden gibt es ein Worddocument, welches als Vorlage dient. In
diesem Document sind mehrere Tabellen. Diese werden aus einer
WordObj.ActiveDocument.Tables(3).Cell(3, 3).Range.Text = Eintrag
WordObj.ActiveDocument.Tables(1).Cell(4, 2).Range.Text = Dr!BefundNr
Ich befülle ebenfalls oft Word Dokumente bzw. darin enthaltene
Tabellen mit Daten aus Access.
Allerdings verwende ich eine etwas andere Syntax als du.
Set Zelleninhalt = WordObj.ActiveDocument.Tables(1).Cell(3,3).Range
Zelleninhalt.InsertAfter Eintrag ' Wenn "Eintrag" eine Variable ist.
Das klappt mit allen Access, Word und Betriebssystemen.
(bis einschl. 2003, Office 2007 habe ich nicht)
sei froh. Habe bereits im Bereich VBA ein paar Inkompatibilitäten
festgestellt.

--
Dieter Öschay
Loading...