Laufzeitfehler 91 Access 2010

Guten Tag,

ich habe das Problem, dass wenn ich ein Worddokument (*.dot) aus Access 2010 heraus öffnen möchte, der „Laufzeitfehler 91 objektvariable oder with-blockvariable nicht festgelegt“ auftritt.
Allerdings nur beim zweiten Öffnen und auch nur wenn der Benutzer kein Admin ist.
Als Administrator lässt sich das Problem nicht rekonstruieren.
Vielleicht weiß jemand woran das liegen könnte?

Vielen Dank schonmal im Vorraus!

Mit freundlich Grüßen

enny86

Hallo enny86,
Ohne Code ist das ein bissl wie Kristallkugelschauen :smile:
Als Erste Hilfe möchte ich Dir raten, den Code zu debuggen, dann siehst du mal, welcher Befehl die Meldung auslöst. Mögliche Ursachen dafür gibt’s jedenfalls wie Sand am Meer.
Wenn du mehr Infos hast, meld dich gerne wieder.
Viel Erfolg!
Katharina

Hallo,

hab den Code nicht angehängt, weil der ja im Prinzip richtig sein müsste, da es ja als Administrator funkioniert hat.
Aber hier einmal der Code:

Case „Vermerk Blockmodell“

Set objWord = New Word.Application

objWord.Documents.Add (Me![Vorlagen].Column(1) & „Vermerk Blockmodell.dot“)
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName1“
objWord.Selection.TypeText GetFullNamemitn
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName2“
objWord.Selection.TypeText GetFullNameoVorname
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName3“
objWord.Selection.TypeText GetFullNameoVorname

Fehler entsteht beim ersten „objWord“

Gruß enny1086

Leider keine Ahnung und probieren kann ich es auch nicht, da hier nur Access & Word 2003 laufen…

Hallo enny86
Schwer zu sagen ohne Kenntnis des Codes und der Stelle, an der der Fehler auftritt. Fehler 91 kommt wenn eine Variable nicht gesetzt oder nicht mehr vorhanden ist, und hat auf m.E. nichts mit den Zugriffsrechten zu tun. Auch die Reihenfolge irritiert mich: den umgekehrten Weg kenne ich (das erste Mal Fehler, dann nicht mehr) aber so habe ich ihn noch nie erlebt.
Sorry, dass ich dir nicht weiterhelfen kann
Fonti46

Hallo,

ohne Code ist es etwas schwieriger.
Ich vermute du hast ein Variable in einer Schleife und diese Variable wird erst in der Schleife gefüllt. Ich würde die Variable vor der Schleife definieren und ihr einen startwert zuweisen.

Vielleicht hilft dies weiter

Guten Tag,

Hallo enny86,

ich habe das Problem, dass wenn ich ein Worddokument (*.dot)
aus Access 2010 heraus öffnen möchte, der „Laufzeitfehler 91
objektvariable oder with-blockvariable nicht festgelegt“
auftritt.

Unter Laufzeitfehler 91 habe ich folgenden Link gefunden:
http://www.office-loesung.de/ftopic59235_0_0_asc.php
Verwendest Du zufällig Kaspersky? Dann würde ich den Tipp von UHensche ausprobieren.

Allerdings nur beim zweiten Öffnen und auch nur wenn der
Benutzer kein Admin ist.
Als Administrator lässt sich das Problem nicht rekonstruieren.

Wenn der Fehler als Admin nicht auftritt, könnte man vermuten, dass es ggf. an den Zugriffsrechten des Word-Dokumentes liegt.

Vielleicht weiß jemand woran das liegen könnte?

Vielen Dank schonmal im Vorraus!

Mit freundlich Grüßen

enny86

MfG MwieMichel

Da fehlt doch immer noch fast alles:
Wie ist objWord definiert?
Gibt’s weitere Bearbeitungen von objWord?
Wird objWord wieder freigegeben? Wann? Wo?
Wie kommt’s zum zweiten Aufruf? Nico_MoD fragt ja auch schon nach Schleife, …

Schau auch mal im Taskmanager mit, ob sich da Instanzen von Word öffnen und „hängen bleiben“.

Immer noch dicht an der Kristallkugel …

Und … du vermutest doch den Fehler im VBA-Code, sonst würdest du hier nicht posten, oder? Ich hab jedenfalls die starke Vermutung, dass es als Administrator zufällig funktioniert hat, vielleicht durch spezielle Ausgangsbedingungen wie zB Word schon offen / das Dokument schon offen / …

Hilf den Helfern mal ein bissl mit ausführlichen Informationen, bitte.

Für heut jedenfalls gute Nacht :smile:

Sorry, ich nicht.

Hättest Du meine Posts verfolgt, wäre Dir aufgefallen, daß ich noch niemals 'was zu Access geschrieben habe. Dies deshalb, weil in meinem beruflichen Umfeld richtig große Datenbanken aktiv sind. Access ist deshalb außerhalb meines Sichtfelds.

Guten Tag,

Leider kann ich diese Abfrage nicht beantworten weil ich keine Erfahrungen mit VBA Access habe…

Vielen Grüße

Christian Philippi

Lieber enny86
Leider kann ich dir nicht helfen. Bitte suche einen andern Experten
Mit freundllichen Grüssen
A.Stürmlin

Hallo Enny86,

vielleicht verstehe ich den Fehler noch nicht richtig:

  1. wieso öffnen einer .DOT Datei ?
    (welche art öffnen: zum Bearbeiten der Vorlage,
    oder als Word Dokument mit späterem
    „speichern unter“, etwa wie ein Formular) ?
  2. wieso eine DOT Datei ein zweites Mal öffnen ?
    Aus meiner Sicht ist alles, was mit der „Maschine“ einer anderen Anwendung arbeitet, (Word aus Access aufrufen) erstmal wackelig, mindestens wenn man Methoden ansetzt. Dazu muss man sehr genau wissen, wie die jeweilige Methode denn arbeitet, was sie voraussetzt (betimmte Objekte z.B.)
    Gute Erfahrungen habe ich dagegen mit den „reinen“ Objekten, also Inhalten. Word gegenüber bin ich extrem vorsichtig.
    Vielleicht konnte ich Dir wenigstens einen Ansatz geben. Viel Erfolg!
    Matthias

objektvariable oder with-blockvariable nicht festgelegt"
Allerdings nur beim -->zweiten Öffnen

Sorry, keine Ahnung

Danke schonmal für deine Hilfe! Sorry, dass ich mich jetzt erst melde, aber es gibt mittlerweile ein paar neue Erkenntnisse. :smile:
Also der Fehler tritt nicht unter Access 2003 auf, außerdem entsteht der Fehler nur wenn ich einen Netzwerk Vorlagenpfad unter Word angebe, bei einem Lokalen Pfad gibt es den Fehler auch nicht.

So ich hoffe ich erschlage dich nun nicht mit meinem Code:

'----------------------------------------------------
’ Funktion ermittelt den vollen Namen
'----------------------------------------------------
Public Function GetFullName() As String

GetFullName = GetBlank(Forms!fmHaupt!Anrede) & GetBlank(Forms!fmHaupt!Vorname) & GetBlank(Forms!fmHaupt!Titel) & GetBlank(Forms!fmHaupt!Vorsilbe) & Forms!fmHaupt!Nachname

End Function
'----------------------------------------------------
’ Funktion ermittelt den vollen Namen ohne Vorname
'----------------------------------------------------
Public Function GetFullNameoVorname() As String

GetFullNameoVorname = GetBlank(Forms!fmHaupt!Anrede) & GetBlank(Forms!fmHaupt!Titel) & GetBlank(Forms!fmHaupt!Vorsilbe) & Forms!fmHaupt!Nachname

End Function
'----------------------------------------------------
’ Funktion ermittelt den vollen Namen ohne Anrede
'----------------------------------------------------
Public Function GetFullNameoAnrede() As String

GetFullNameoAnrede = GetBlank(Forms!fmHaupt!Titel) & GetBlank(Forms!fmHaupt!Vorname) & GetBlank(Forms!fmHaupt!Vorsilbe) & Forms!fmHaupt!Nachname

End Function
'----------------------------------------------------
’ Funktion ermittelt den vollen Namen und „n“ Abfrage
'----------------------------------------------------
Public Function GetFullNamemitn() As String

If (Forms!fmHaupt!Anrede) = „Frau“ Then
GetFullNamemitn = GetBlank(Forms!fmHaupt!Anrede) & GetBlank(Forms!fmHaupt!Titel) & GetBlank(Forms!fmHaupt!Vorname) & GetBlank(Forms!fmHaupt!Vorsilbe) & Forms!fmHaupt!Nachname
Else
Hanrede = Forms!fmHaupt!Anrede
Hanrede = Hanrede & „n“
GetFullNamemitn = GetBlank(Hanrede) & GetBlank(Forms!fmHaupt!Titel) & GetBlank(Forms!fmHaupt!Vorname) & GetBlank(Forms!fmHaupt!Vorsilbe) & Forms!fmHaupt!Nachname
End If

End Function

'----------------------------------------------------
’ Bestimmt ob Blank angehängt wird
'----------------------------------------------------
Public Function GetBlank(t As Variant) As String

If IsNull(t) Then
GetBlank = „“
Else
GetBlank = t & " "
End If

End Function
'================Formatierung abhängig von der Firma======================
Private Sub Form_Current()
'6696 für KES
If (Forms!fmHaupt!FirmaID = 6696) Then
Me!Bezeichnungsfeld25.Caption = „KES“
ElseIf (Forms!fmHaupt!FirmaID = 6632) Then
'6632 für Klinikum Emden
Me!Bezeichnungsfeld25.Caption = „KE“
ElseIf (Forms!fmHaupt!FirmaID = 6697) Then
'6697 für MVZ
Me!Bezeichnungsfeld25.Caption = „MVZ“
End If
End Sub
Private Sub Befehl352_Click()

Dim objWord As Word.Application
Set objWord = New Word.Application
'6696 für KES
If (Forms!fmHaupt!FirmaID = 6696) Then
'Platzhalter
ElseIf (Forms!fmHaupt!FirmaID = 6632) Then
'6632 für Klinikum Emden
objWord.Documents.Open („S:\DB\Vorlagen\KE\Altersteilzeit\Liste-alle Fälle.doc“)
ElseIf (Forms!fmHaupt!FirmaID = 6697) Then
'6697 für MVZ
'Platzhalter
End If

objWord.Visible = True
objWord.Activate
Set objWord = Nothing

Exit Sub

Befehl352_Click_error:
'Fehlerbehandlung
objWord.Quit False
Set objWord = Nothing
MsgBox Err.Description
End Sub

Private Sub Bezeichnungsfeld17_Click()

End Sub

Private Sub BtWord_Click()

Dim objWord As Word.Application

'============= Select von Vorlagen =============
Select Case Vorlagen

'=======================================================================================================================================
Case „Vermerk Blockmodell“

Set objWord = New Word.Application

objWord.Documents.Add (Me![Vorlagen].Column(1) & „Vermerk Blockmodell.dotm“)
MsgBox (Me![Vorlagen].Column(1) & „Vermerk Blockmodell.dot“)
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName1“
objWord.Selection.TypeText GetFullNamemitn
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName2“
objWord.Selection.TypeText GetFullNameoVorname
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName3“
objWord.Selection.TypeText GetFullNameoVorname

'Geboren
If Not IsNull(Forms!fmHaupt!Geboren) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Geboren“
objWord.Selection.TypeText Forms!fmHaupt!Geboren
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Geboren“
objWord.Selection.TypeText " "
End If

'Abteilung
If Not IsNull(Forms!fmHaupt!Abteilung) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Abteilung“
objWord.Selection.TypeText Forms!fmHaupt!Abteilung.Column(0)
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Abteilung“
objWord.Selection.TypeText " "
End If

objWord.Visible = True
objWord.Activate
objWord.WindowState = wdWindowStateMaximize
MsgBox („entladen“)
Set objWord = Nothing

'=======================================================================================================================================
Case „Vermerk Teilzeitmodell“

Set objWord = New Word.Application

objWord.Documents.Add (Me![Vorlagen].Column(1) & „Vermerk Teilzeitmodell.dot“)
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName1“
objWord.Selection.TypeText GetFullNamemitn
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName2“
objWord.Selection.TypeText GetFullNameoVorname
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName3“
objWord.Selection.TypeText GetFullNameoVorname
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName4“
objWord.Selection.TypeText GetFullNameoVorname

'Geboren
If Not IsNull(Forms!fmHaupt!Geboren) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Geboren“
objWord.Selection.TypeText Forms!fmHaupt!Geboren
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Geboren“
objWord.Selection.TypeText " "
End If

'Abteilung
If Not IsNull(Forms!fmHaupt!Abteilung) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Abteilung“
objWord.Selection.TypeText Forms!fmHaupt!Abteilung.Column(0)
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Abteilung“
objWord.Selection.TypeText " "
End If

objWord.Visible = True
objWord.Activate
objWord.WindowState = wdWindowStateMaximize
Set objWord = Nothing

'=======================================================================================================================================
Case „Altersteilzeit-Arbeit“

Set objWord = New Word.Application

objWord.Documents.Add (Me![Vorlagen].Column(1) & „Altersteilzeit-Arbeit.dot“)
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName“
objWord.Selection.TypeText GetFullNamemitn
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„FullName2“
objWord.Selection.TypeText GetFullNameoAnrede

'Straße
If Not IsNull(Forms!fmHaupt!straße) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Straße“
objWord.Selection.TypeText Forms!fmHaupt!straße
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Straße“
objWord.Selection.TypeText " "
End If

'Geboren
If Not IsNull(Forms!fmHaupt!Geboren) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Geboren“
objWord.Selection.TypeText Forms!fmHaupt!Geboren
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Geboren“
objWord.Selection.TypeText " "
End If

'GebOrt
If Not IsNull(Forms!fmHaupt!GebOrt) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„GebOrt“
objWord.Selection.TypeText Forms!fmHaupt!GebOrt
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„GebOrt“
objWord.Selection.TypeText " "
End If

'Ort
If Not IsNull(Forms!fmHaupt!Ort) Then
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Ort“
objWord.Selection.TypeText Forms!fmHaupt!Ort
Else
objWord.Selection.GoTo What:=wdGoToBookmark, Name:=„Ort“
objWord.Selection.TypeText " "
End If

objWord.Visible = True
objWord.Activate
objWord.WindowState = wdWindowStateMaximize
Set objWord = Nothing

'=======================================================================================================================================

End Select

Exit Sub

BtWord_Click_error:
'Fehlerbehandlung
objWord.Quit False
Set objWord = Nothing
MsgBox Err.Description
End Sub

Private Sub Befehl18_Click()
On Error GoTo Err_Befehl18_Click

DoCmd.Close

Exit_Befehl18_Click:
Exit Sub

Err_Befehl18_Click:
MsgBox Err.Description
Resume Exit_Befehl18_Click

End Sub

Private Sub Vorlagen_BeforeUpdate(Cancel As Integer)

End Sub

Trotzdem Danke! =)

Sorry, keine Ahnung

Trotzdem Danke! =)

Trotzdem Danke! =).

Es muss eine .DOT sein, da unsere Mitarbeiter die Vorlage nicht ändern sollen.
Ein zweites mal z.B. wenn man ohne einen Neustart eine Vorlage ein zweites mal öffnen möchte.

Ich danke dir für deine Mühe. =)

Hi,

du wurdest mir vorgeschlagen bei meinen Stichworten.
Wusste ich nicht sorry.

Da mit dem Admin hat sich leider auch erldedigt, dies lag daran, dass ich noch Office 2003 installiert hatte.

Danke für deine Hilfe!