Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

(Serienbrief)-Formeln in Word: Datum umwandeln?

63 views
Skip to first unread message

M.@discussions.microsoft.com Andy M.

unread,
Sep 18, 2008, 4:06:03 AM9/18/08
to
also ich bin gerade dabei mit den Formel in Word zu arbeiten. Dabei bin ich
auf ein Problemchen gestossen. Es ist so, dass ein (Serien)Brief mit einer
Datenbank verbunden ist. In dieser Datenbank stehen viele Felder mit dem Typ
"Datum" (z.B. 01.02.2008). Da die Serienbriefe zweisprachig sind, muss aus
der Monatszahl entweder "Februar" resp. "février" werden.
Gibt es da irgendwie eine Möglichkeit, die Monatszahl alleine umzuwandeln,
ohne dass ich den Datentyp in der Datenbank ändern muss? Gibt es irgendwelche
"Platzhalter" wie z.B. $$. 02. $$$$, damit ich die gewünschte zahl alleine
herausfiltern und in einer if-schleife in einen Monat umzuwandeln kann?
vielen Dank im Vorraus,
Andy

Thomas Löwe [MS MVP Word]

unread,
Sep 18, 2008, 4:38:43 AM9/18/08
to
Hallo Andy,

On 18 Sep., 10:06, Andy M. <Andy M...@discussions.microsoft.com>
wrote:

du hast leider nicht die verwendete Version von Microsoft Office
angegeben. Bitte schließe diese Information bei allen weiteren
Anfragen ein.

Über eine VBA-Lösung sollte dieses erreichbar sein.

Du solltest diese Frage auch mit den Experten in der Newsgruppe
news:microsoft.public.de.word.vba diskutieren.

Bei weiteren Fragen stehen wir dir jederzeit gern zur Verfügung.

--
Mit freundlichen Grüßen / With best regards
Thomas Löwe [Microsoft MVP Word]
Es erfolgt keine Beantwortung von Supportanfragen per persönlicher E-
Mail.
http://support.microsoft.com

Andy M.

unread,
Sep 18, 2008, 5:07:02 AM9/18/08
to
entschuldigungs, es handelt sich um Office 2003.
ich habe die frage auch mal im Word Programming Forum gestellt.

Robert M. Franz (RMF)

unread,
Sep 18, 2008, 10:55:47 AM9/18/08
to
Hallo Andy

Andy M. wrote:
> also ich bin gerade dabei mit den Formel in Word zu arbeiten. Dabei bin ich
> auf ein Problemchen gestossen. Es ist so, dass ein (Serien)Brief mit einer
> Datenbank verbunden ist. In dieser Datenbank stehen viele Felder mit dem Typ
> "Datum" (z.B. 01.02.2008). Da die Serienbriefe zweisprachig sind, muss aus
> der Monatszahl entweder "Februar" resp. "février" werden.

du kannst ein Serienbrieffeld in ein IF-Feld verpacken und (z.B.
abhängig von einem Sprach-Flag, also einem weiteren Feld) anders
darstellen. Wenn Word überhaupt erkennt, dass da ein Datum drin steht,
könnte das klappen. Allerdings wäre es wohl am einfachsten, wenn Du das
Feld bereits in der DB als reinen Text so darstellst, wie Du es je
Datensatz haben willst, dann kannst Du es ganz normal nach Word "schicken".

Gruss
Robert
--
/"\ ASCII Ribbon Campaign | MSFT |
\ / | MVP | Scientific Reports
X Against HTML | for | with Word?
/ \ in e-mail & news | Word | http://www.masteringword.eu/

Jörg Burzeja

unread,
Sep 18, 2008, 12:56:26 PM9/18/08
to
Andy M. schrieb:

Reden wir von einer SQL-Datenbank? Dann ist das relativ einfach.

Erstelle Dir einen View in der Datenbank, der die Daten der Tabelle
enthält, und zusätzlich in weiteren Spalten eine Berechnung durchführt.
Der View benötigt keinen Speicherplatz und aktualisiert natürlich auch
immer die Daten.
http://msdn.microsoft.com/de-de/library/ms187956.aspx

In diesen zusätzlichen Spalten zerlegst Du das Datum, z.B. in Spalte_A
tt, Spalte_B mm, SpalteC yyyy.
http://msdn.microsoft.com/de-de/library/ms187748.aspx

In den Serienbrief holst Du die Zahlen aus diesem View ab, der ja genau
die gleichen Informationen wie die urspüngliche Tabelle hat, eben nur
ein paar Informationen mehr.

Soweit Du in einer Abfrage Tabellen gejoint hast, gehst Du nicht mehr
auf die eigentliche Tabelle, sondern auf den View. Nun solltest Du in
word kein Problem mehr haben, Spalte_B auf Monat '02' mit IF abzufragen.

Auch in Access kannst Du die Daten entsprechend aufbereiten.


--
Viele Grüsse

Jörg

Andy M.

unread,
Sep 19, 2008, 1:36:01 AM9/19/08
to
Vielen Dank für die Antworten. Ich denke, mein Problemchen ist etwas
komplizierter: Die Datenbank ist ein Excell-Dokument, das von einer
MySQL-PHP-Programmatioun erzeugt wird. Auf der "Webseite" gibt man das
getrennt ein, das heisst, für TT, MM und JJJJ jeweils ein Dropdown. Beim
Exportieren erhalte ich also ein Excell-Dokument, wo das Datum schon zusammen
ist (TT.MM.JJJJ). Da dieses Dokument eben automatisch generiert wird, kann
ich also das Datum erst im Brief verarbeiten. Gibt es denn keine Befehle die
bei zum Beispiel 01.02.2003 den Monat rausfiltren, so mit einer Maske a la
"wenn $$.02.$$$$ schreib $$. Februar $$$$"?

Lisa Courte

unread,
Sep 19, 2008, 3:58:01 AM9/19/08
to
Du kannst doch das Datum mit einem Schalter aufspalten, z..B. { Mergefield
Datum \@ "MMMM" } da hast Du dann den Monatsnamen ausgeschrieben. Das
gesamte Datum wäre dann als Schalter \@ "dd.MMMM yyyy" . Du kannst das
gesamte Datum auch in 3 Schritten mit den jeweiligen Schaltern hinzufügen,
einmal nur die Tage, dann Monat, dann Jahr.

--
Grüße Lisa
"Andy M." <An...@discussions.microsoft.com> schrieb im Newsbeitrag
news:6DAE6CBC-5DE8-4D90...@microsoft.com...

Andy M.

unread,
Sep 19, 2008, 4:46:06 AM9/19/08
to
danke Lisa, das hört sich soweit schon ganz gut an ^^
aber ich denke, du gehst von einem Word-klassischen Datum aus? Bei mier in
der Excell-Datenbank steht aber der Datum praktisch als Text, wie ich das
jetzt sehe. Das heisst, der Serienbrief übernimmt also bloss einen Text aus
der Spalte "Datum". Ich glaube, mit deiner Methode kann man keinen Text
aufspalten?
Andy

"Lisa Courte" schrieb:

Jörg Burzeja

unread,
Sep 19, 2008, 3:15:14 PM9/19/08
to
Andy M. schrieb:

> aber ich denke, du gehst von einem Word-klassischen Datum aus? Bei mier in
> der Excell-Datenbank steht aber der Datum praktisch als Text, wie ich das
> jetzt sehe. Das heisst, der Serienbrief übernimmt also bloss einen Text aus
> der Spalte "Datum". Ich glaube, mit deiner Methode kann man keinen Text
> aufspalten?

Warum versuchst Du etwas umständlich zu lösen, was mit Excel sehr
einfach zu lösen ist?

Excel versteht (im Gegensatz zu Word) Substring, auch wen dies dort
'Links' bzw. 'Rechts' heisst.

Trage in Excel in die Zellen ein:

Als Wert:
A1 --> 20.09.2008 (als Text formatieren)

Als Formel:
B1 --> =LINKS(A1;2)
C1 --> =LINKS(RECHTS(A1;7);2)
D1 --> =LINKS(RECHTS(A1;7);2)

Erstelle Dir damit ein Makro, das die Schritte nach dem Export ausführt,
und schon hast Du das Datum in gewünschter Form für die IF-Abfrage in Word.

--
Viele Grüsse

Jörg

Jörg Burzeja

unread,
Sep 19, 2008, 3:26:10 PM9/19/08
to
Jörg Burzeja schrieb:

> D1 --> =LINKS(RECHTS(A1;7);2)

Natürlich: =RECHTS(A1;4)


--
Viele Grüsse

Jörg

Robert M. Franz (RMF)

unread,
Sep 20, 2008, 6:21:42 AM9/20/08
to
Hallo Andy

Andy M. wrote:
> Vielen Dank für die Antworten. Ich denke, mein Problemchen ist etwas
> komplizierter: Die Datenbank ist ein Excell-Dokument, das von einer
> MySQL-PHP-Programmatioun erzeugt wird. Auf der "Webseite" gibt man das
> getrennt ein, das heisst, für TT, MM und JJJJ jeweils ein Dropdown. Beim
> Exportieren erhalte ich also ein Excell-Dokument, wo das Datum schon zusammen
> ist (TT.MM.JJJJ). Da dieses Dokument eben automatisch generiert wird, kann
> ich also das Datum erst im Brief verarbeiten.

oder Du kannst den PHP-Teil anpassen lassen, der Dir das Datum dann so
nach Excel serviert (oder in Excel anders bearbeitet), wie Du das dann
in Word brauchen kannst ...

> Gibt es denn keine Befehle die
> bei zum Beispiel 01.02.2003 den Monat rausfiltren, so mit einer Maske a la
> "wenn $$.02.$$$$ schreib $$. Februar $$$$"?

Siehe die Antwort von Lisa: Wenn Word das als Datum erkennt, dann kannst
Du das Seriendruckfeld dreimal hintereinander einfügen und jeweils auf
einen Bestandteil des Datums zuschneiden. Als Text gibt es _in Word_
allerdings keine hauseigene Möglichkeit (von VBA mal abgesehen), das
Zeugs auseinanderzubrechen.

0 new messages