Aus Access Word aufrufen, wenn Doc nicht vorhanden

Hallo,

Ich rufe aus Access ein Word Dokument auf. Das Word Dokument hat den Namen einer SchadenNr.
Das funktioniert auch, wenn ich ein Dokument mit dieser SchadenNr. schon angelegt habe.
Die SchadenNr setzt sich aus Jahr „-“ und SchadenNr zusammen.

Wenn aber noch kein Dokument existiert, sollte automatisch auch ein neues erstellt werden und abgespeichert werden und der SchadenNr.
Ich habe versucht, siehe unten das problem zu lösen.

Ich möchte, wenn kein Dokument mit der SchadensNr existiert, dass ein neues Dokument mit der SchadenNr. geöffnet wird.

Nach der Bearbeitung sollte das Dokument auch wieder gespeichert werden.

Ins Dokument wird auch die SchadensNr übertragen und als Textmarke auch hinterlegt.
Es sollte aber zusätzlich noch der Text Interne-Vermerke und das aktuelle Datum eingetragen werden.
Beim Aufruf des Word Dokuments wird SchadenNr eingtragen, danach erfolgt Fehlermeldung kann Interne_Vermerke nicht finden.

>
Private Sub Interne_Vermerke_Click()
On Error GoTo Err_Interne_Vermerke_Click

Dim objDoc As Object
Dim objSel As Object
Dim Interne_Vermerke
Dim objWord As Word.Application
Interne_Vermerke = „(Interne Vermerke:smile:“
'Wenn keine Daten übergeben werden gehe raus
'If IsNull(varData) = True Then Beep
'Exit Sub

'DoEvents

'If Not WordGeladen() Then On Error GoTo OffAutoProblem
'SetobjWord = New Word.Application
'On Error Resume Next
'Set objDoc = objWord.Documents.Add(„D:\Ablage\Intern“ & Jahr & „-“ & SchadenNr & „.doc“)
'Set objWord = GetObject(, „Word.Application“)
'If err.Number = 429 Then End If
'word Anzeigen
'objWord.Visible = True
'Gugst du ob geladen was
'If objWord.Documents.Count = 0 Then
Beep

'End If

Set objWord = CreateObject(„Word.Application“)
With objWord
.Visible = True
Documents.Open „D:\Ablage\Intern“ & Jahr & „-“ & SchadenNr & „.doc“ 'das zu öffnende Worddokument

.ActiveDocument.Bookmarks(„Jahr“).Select
.Selection.Text = (CStr(Form!Jahr))
.ActiveDocument.Bookmarks(„SchadenNr“).Select
.Selection.Text = (CStr(Form!SchadenNr))
.ActiveDocument.Bookmarks(„Interne_Vermerke“).Select
.Selection.Text = (CStr(Form!Interne_Vermerke))
'usw.nächste Textmarken…
'…

’ .ActiveDocument.PrintOut Background:=False
'.Quit acPrompt

Beep
‚MsgBox „Textmarke '“ + strTextmarke + "‘ nicht gefunden!", vbOKOnly + vbInformation, „!!! Problem !!!“

'an Cursorposition einfügen
Set objSel = objWord.Selection
objSel.TypeText varData

'DoEvents
'MsgBox „Der Word-Interne Vermerk wurde erfolgreich angelegt!“
'DoEvents
'EndeProc:

Set objWord = Nothing
DoEvents
'Exit Sub

Exit_Interne_Vermerke_Click:
Exit Sub

Err_Interne_Vermerke_Click:
MsgBox err.Description
Resume Exit_Interne_Vermerke_Click
Beep

End With

End Sub

Hallo, kann Dir leider nicht weiterhelfen

Hallo,

Ich rufe aus Access ein Word Dokument auf. Das Word Dokument
hat den Namen einer SchadenNr.
Das funktioniert auch, wenn ich ein Dokument mit dieser

Sorry, kann Dir nicht helfen:
Dein Code läuft bei mir nicht (XP, Word & Access 2003)
und ich finde nicht warum.
Aber das kann auch an der „Verstümmelung“ des Codes durch diese Website liegen. Für zukünftige Fälle: vor Code

 und danach 

eingeben, damit die Struktur erhalten bleibt.

danke zumindest für diesen Tip, kannte ich nicht.

Hallo,

ich kenne mich mit Wordaufrufen aus Access leider nicht aus :frowning:
Aber vieleicht funktioniert es, wenn das Dokument nicht vorhanden ist.
NICHT mit Access ein Neues zu erstellen, sondern ein mit filecopy ein Vorlagendokument zu kopieren und mit dem neuen Namen erst zu speichern bevor Du es dann editierst.

Mehr weiß ich dazu leider auch nicht.

Viel Erfolg
Gruß
Andreas

Hy,

ob die word adtei existiert kannst du doch im vorfeld mit einem einfachen dir befehl herausfinden und dann entsprechend reagieren.

Der Fehler im Word Object könnte im Aufruf liegen, versuch es mal mit

Dim oWordApp As Word.Application
Dim oDoc As Word.Document
Set oWordApp = CreateObject(„Word.Application“)
Set oDoc = oWordApp.Documents.Add

könnte daran liegen.

Wenn es ärger mit textmarken gibt mache ich ein Musterformular das die entsprechenden Textmarken enthält, das hat auch den Vorteil das man in diesem Musterexemplar Briefkopf/fuß und ander Sachen hinterlegen kann. Dann einfach Muster öffnen, ausfüllen und speichern unter.

Frank

Hallo,

da muss ich passen.

Beste Grüße

Hi,
dafür fehlen mir noch Infos. Was für eine Vorlagendatei wird da beim Erstellen eines neuen Word-Objekts benutzt?

Und Dein Muster betrifft doch das Öffnen eines existierenden Docs und nicht das Erstellen und erstmalige Speichern eines neuen Docs?

Und wie ist denn Interne_Vermerke an der Stelle definiert, an der Du es verwenden willst? Das kann ich so nicht erkennen, Interne_Vermerke ist bei Dir eigentlich eine Variable vom Typ Variant, der ein Wert vom Typ String zugeordnet wurde (warum dann eigentlich Variant?).

Habe die Nachricht über diese Anfrage eben erst bekommen, sorry…

Hi,

habe es falsch formuliert.
Ich öffne aus Access ein leeres Worddokument übergebe eine Schadensnummer die mit textmarke eingefügt wird, und automatisch wird das Worddokument unter der Schadensnummer abgespeichert.
(das funktioniert auch so)
Was mir fehlt: Vorab eine Abfrage ob das Worddukument mit der Schadensnummer schon existiert, dann soll dieses Dokument aufgerufen werden.
Interner Vermerke habe ich falsch gemacht, ich wollte einfach, dass auf dem Worddokument als Überschrift#
Interne Vermerke steht.
Gruss

ach, na das ist stinkeinfach… :smile:

schau Dir mal den Dir-Befehl an
Wenn Du das benutzt
If Dir(„D:\meineTexte\Muster.doc“) = „“ then
dann wird Dein angegebener Code zum Erstellen eines Docs nur ausgeführt, wenn das Doc noch nicht existiert.
Dahinter setzt Du ein
Else
und dahinter Code zum Öffnen Deines Docs.

Und mit Variablen sieht es so aus (wird Dir eh klar sein):
Dir(VarPfadname & „“ & VarDateiname)