Wordformular braucht Startwert aus Textdatei

06/08/2009 - 14:56 von Erik Harren | Report spam
Moin!

Ich habe hier einen Word-Formular als Vorlage, welches sich nun folgende
Daten selber besorgen soll:

Beim Start (click auf *.DOT oder *.dotx):
-Setze in einem Textfeld3 das aktuelle Jahr und den aktuellen Monat
(JJJJMM-)
-Hànge an vorherigem (JJJJMM-) noch eine laufende Nummer aus
Textdatei.txt(gleiches Verzeichnis wie Vorlage) Zeile 1 an
- und erhöhe Zahl um 1 vor Speichern und schließen der Textdatei.

Beim Beenden des neuen Formlar soll der Dateiname sich aus folgenden
Textfeldern zusammen setzen und per UNC-Pfad gespeichert werden:

- Dateiname: Textfeld3 & ' - ' & Textfeld1.doc
- UNC: \\Server\Pfad\zum\Ziel\

Wie würde das am besten gelöst?

Gruß,
Erik.
 

Lesen sie die antworten

#1 Thomas Gahler
11/08/2009 - 07:31 | Warnen spam
Hallo Erik


Ich habe hier einen Word-Formular als Vorlage, welches sich nun folgende
Daten selber besorgen soll: [...]


Mit den beiden nachstehenden Prozeduren solltest du kalr kommen

'
Option Explicit
Const UNC As String = "C:\Temp\"

Sub Autonew()
Dim doc As Word.Document
Dim ini As String
Dim strTextfeld3 As String
Dim strAktuelleNr As String

Set doc = ActiveDocument
ini = doc.AttachedTemplate.Path & "\Textdatei.txt"

'Aktuelle Dokumentnummer einlesen...
strAktuelleNr = System.PrivateProfileString( _
FileName:=ini, _
Section:="Allgemein", _
Key:="Dokumentnummer")
If Len(Trim$(strAktuelleNr)) = 0 Then
strAktuelleNr = "1"
Else
strAktuelleNr = CStr(CLng(strAktuelleNr) + 1)
End If
strAktuelleNr = Format$(strAktuelleNr, "0000")

'...und neuen Wert abspeichern.
System.PrivateProfileString( _
FileName:=ini, _
Section:="Allgemein", _
Key:="Dokumentnummer") = strAktuelleNr

'Inhalt von Textfeld3 besimmen...
strTextfeld3 = Format$(Now, "yyyymm")
strTextfeld3 = strTextfeld3 & "-"
strTextfeld3 = strTextfeld3 & strAktuelleNr

'...und auf dem Dokument eintragen.
doc.FormFields("Textfeld3").Result = strTextfeld3
End Sub

Sub AutoClose()
Dim doc As Word.Document
Dim strDateiname As String

Set doc = ActiveDocument

'Dokumentname vorbereiten...
strDateiname = UNC
strDateiname = strDateiname & doc.FormFields("Textfeld3").Result
strDateiname = strDateiname & "-"
strDateiname = strDateiname & doc.FormFields("Textfeld1").Result

'...und abspeichern
If Len(Trim$(doc.Path)) = 0 Then
doc.SaveAs _
FileName:=strDateiname, _
AddToRecentFiles:=True
Else
doc.Save
End If
End Sub

'




Thomas Gahler
MVP für Word
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)

Ähnliche fragen