Hallo,
ich habe Access als Firmensoftware, wenn ich da in der Datenbank einen Kunden aufmache und dann ein Briefdokument an ihn schreiben will kommt bei mir, sobald Word geöffnet wird, folgende Fehlermeldung:
Laufzeitfehler "2774"
Die Komponente Unterstützt die Automatisierung nicht.
Sie haben versucht, eine Visual-Basic Prozedur auszuführen in der ein Automatisierungsobjekt verwiesen wird.
Prüfen sie Anhand der Dokumentation der Komponente, ob die Automatisierung unterstützt wird.
Kann mir wer helfen?
Danke schon einmal im vorraus
Hallo, schönen guten Morgen,
schau mal im VBA-Editor unter Extras --- Verweise nach ob da vielleicht eine Komponente als 'NICHT VORHANDEN' markiert ist.
Mir schaut das danach aus als würde der Verweis auf die 'Microsoft Word xx.x Object Library' fehlen oder für eine falsche Version eingestellt sein
oder der Verweis auf die OLE Automation fehlen.
HTH
Peter
also wenn ich bei der Fehlermeldung auf Testen gehe kommt folgendes:
Option Compare Database
Option Explicit
Dim gdocName As String
' Neues Dokument erstellen
' myTyp = 0 => Aufruf aus Vertragspartner
' myTyp = 1 => Aufruf aus Angebot/Vertrag
' myTyp = 2 => Aufruf aus Vermittler
' myTyp = 3 => Aufruf aus Lieferant
Public Function NewDocument(myID As Long, myTyp As Long)
Dim dbs As Database
Dim rst As Recordset, rstVp As Recordset, rstAuto As Recordset
Dim sWork As String, strSQL As String, wPath As String
Dim docName As String
Dim BriefFrm As Object, Dokument As Object, wrd As Object
gdocName = "" ' Leerstring setzen
' Formular zur Auswahl des Dokumentes anzeigen
DoCmd.OpenForm "DokumentVorlagen"
Do
DoEvents ' Systemaufruf
Loop Until Len(gdocName) > 0
Set dbs = CurrentDb ' ptr auf aktuelle DB
' Pfad auf Word-Dateien laden
wPath = GetStrWert("WordPath")
docName = wPath + gdocName ' save document name
If myTyp = 0 Then ' Aufruf aus Vertragspartner
Set BriefFrm = Forms![frmVertragspartner]![UF_Schriftverkehr].Form
Set Dokument = BriefFrm![Dokument]
Forms![frmVertragspartner]![UF_Schriftverkehr].SetFocus
DoCmd.GoToRecord , , acNewRec ' neuen Datensatz in Schriftverkehr anlegen
Forms![frmVertragspartner]![UF_Schriftverkehr]![Betreff] = gdocName
Forms![frmVertragspartner]![UF_Schriftverkehr]![Datum] = Date
BriefFrm![VPID] = myID ' VPID eintragen
strSQL = "select * from Vertragspartner where VPID = " + Str(myID)
End If
If myTyp = 1 Then ' Aufruf aus Angebot
Set BriefFrm = Forms![Angebot]![UF_Schriftverkehr].Form
Set Dokument = BriefFrm![Dokument]
Forms![Angebot]![UF_Schriftverkehr].SetFocus
DoCmd.GoToRecord , , acNewRec ' neuen Datensatz in Schriftverkehr anlegen
Forms![Angebot]![UF_Schriftverkehr]![Betreff] = gdocName
Forms![Angebot]![UF_Schriftverkehr]![Datum] = Date
BriefFrm![AngId] = myID ' AngID eintragen
BriefFrm![VPID] = Forms![Angebot]![VPID]
strSQL = "select * from Vertragspartner where VPID = " + Str(Forms![Angebot]![VPID])
End If
If myTyp = 2 Then ' Aufruf aus Formular Vermittler
Set BriefFrm = Forms![Vermittler]![UF_Schriftverkehr].Form
Set Dokument = BriefFrm![Dokument]
Forms![Vermittler]![UF_Schriftverkehr].SetFocus
DoCmd.GoToRecord , , acNewRec ' neuen Datensatz in Schriftverkehr anlegen
Forms![Vermittler]![UF_Schriftverkehr]![Betreff] = gdocName
Forms![Vermittler]![UF_Schriftverkehr]![Datum] = Date
BriefFrm!VMID = Forms![Vermittler]![VMID]
strSQL = "select Anrede, Strasse, PLZ, " & _
"Ort, Landescode as Land, Name from Vermittler " & _
"where VMID = " + Str(myID)
End If
If myTyp = 3 Then ' Aufruf aus Formular Lieferant
Set BriefFrm = Forms![frmLieferant]![UF_Schriftverkehr].Form
Set Dokument = BriefFrm![Dokument]
Forms![frmLieferant]![UF_Schriftverkehr].SetFocus
DoCmd.GoToRecord , , acNewRec ' neuen Datensatz in Schriftverkehr anlegen
Forms![frmLieferant]![UF_Schriftverkehr]![Betreff] = gdocName
Forms![frmLieferant]![UF_Schriftverkehr]![Datum] = Date
BriefFrm!VMID = Forms![frmLieferant]![LFID]
strSQL = "select Anrede, Strasse, PLZ, " & _
"Ort, Landescode as Land, Firma as Name from Lieferant " & _
"where LFID = " + Str(myID)
End If
' Daten des Vertragspartners über SQL-Befehl in Tabelle selektieren
Set rstVp = dbs.OpenRecordset(strSQL, dbOpenDynaset)
BriefFrm![Datum] = Now() ' aktuelles Datum vorbelegen
' Word Dokument vorbereiten
Dokument.Class = "Word.Document"
Dokument.SourceDoc = docName
Dokument.DisplayType = acOLEDisplayIcon
Dokument.Action = acOLECreateEmbed
Dokument.Verb = acOLEVerbOpen
Dokument.Action = acOLEActivate
Set wrd = Dokument.Object.Application
'Anrede und Namen des VP einsetzen
On Error Resume Next
If Not IsNull(rstVp![Anrede]) Then
sWork = rstVp![Anrede] + " "
End If
If (Not IsNull(rstVp![Name])) Then
sWork = sWork + " " + rstVp![Name]
End If
wrd.Selection.Goto What:=wdGotoBookmark, Name:="Anrede_VP"
wrd.Selection.InsertAfter sWork
' Strasse einsetzen
sWork = rstVp![Strasse]
wrd.Selection.Goto What:=wdGotoBookmark, Name:="Strasse_VP"
wrd.Selection.InsertAfter sWork
'Landescode einfügen
wrd.Selection.Goto What:=wdGotoBookmark, Name:="LandesCode_VP"
wrd.Selection.InsertAfter rstVp![Land]
' PLZ einsetzen
wrd.Selection.Goto What:=wdGotoBookmark, Name:="PLZ_VP"
wrd.Selection.InsertAfter rstVp![PLZ]
' Ort
wrd.Selection.Goto What:=wdGotoBookmark, Name:="Ort_VP"
wrd.Selection.InsertAfter rstVp![Ort]
' Datum
wrd.Selection.Goto What:=wdGotoBookmark, Name:="SB_Datum"
wrd.Selection.InsertAfter Date
' speziell für HU/AU werden zusätzliche Textmarken verwendet
If docName = "F:\Ladedokumente\HU_AU.doc" Then
strSQL = "select * from qryHauptuntersuchung where vpid =" & rstVp![VPID]
Set rstAuto = dbs.OpenRecordset(strSQL, dbOpenDynaset)
wrd.Selection.Goto What:=wdGotoBookmark, Name:="Kennzeichen"
wrd.Selection.InsertAfter rstAuto![Kennzeichen]
wrd.Selection.Goto What:=wdGotoBookmark, Name:="HU"
wrd.Selection.InsertAfter rstAuto![N_HU]
wrd.Selection.Goto What:=wdGotoBookmark, Name:="AU"
wrd.Selection.InsertAfter rstAuto![N_AU]
End If
' kein Schließen von Word, da vom Benutzter noch benutzt!
End Function
Public Function SetDocName(dName As String)
gdocName = dName
End Function
und die Zeile " Set wrd = Dokument.Object.Application" ist Gelb hinterlegt
Zitatund die Zeile " Set wrd = Dokument.Object.Application" ist Gelb hinterlegt
heißt für mich, Access kann hier mit Word nicht kommunizieren (grob umschrieben)
hast du die Verweise kontrolliert?
Ich such grad noch wo man die so findet =)
VBA-Editor/Menüleiste/Extras/Verweise
Zitat database:
Zitatschau mal im VBA-Editor unter Extras --- Verweise nach ob da vielleicht eine Komponente als 'NICHT VORHANDEN' markiert ist.
Also wenn ich den VBA-Editor öffnen will kommt bei mir gar nichts. ich kann weder was öffnen noch der gleichen. Wenn ich aber in Access ein Makro ausführen will, z.b. Test, kommt bei mir die Fehlermeldung "Datenbank kann das Formular nicht finden, auf das in einem Makroausdruck oder in einer Visual Basic-Programmzeile verwiesen wird.
Das Formular befindet sich auf einen Server, auf den ich vollen Zugriff habe, kann dort alle Dokumente verändern etc. und hab mir auch alles in Ruhe durchgelesen, der Pfad was angegeben ist, worauf Access zugreifen muss ist richtig.
Achja und wenn ich den VBA-Editor öffnen will kommt der Fehler "Auf Makrospeicher kann nicht zugegriffen werden"
Hallo,
mhmm, bin verwirrt..
Ein Formular kann nicht auf einem Server liegen, es liegt in einer Access-(MDB/MDE-) Datei . Die wiederum kann natürlich irgendwo im Netzwerk liegen.
Wie auch immer, es scheint eine korrumoierte DB zu sein.
Kopiere die MDB-DAtei mal vom Server-Verzeichnis in ein lokales Verzeichnis auf deinem Rechner und öffne sie dann. Versuch, den VBA-Editor zu öffnen (<Alt><F11> drücken) und öffnen das Verweis-Fenster wie beschrieben.
Wenn das auch nicht geht, erstell eine neue leere Db auf Deinem Rechner und importiere(!) darin alles aus der alten DB.
@DF6GL
ich helfe dir beim Verwirrtsein - ich bin's auch grad.
Ich hab' ja schon wirklich viele Dinge gesehen und gehört - das ist mir aber neu.
Aber egal ...
Zitatund die Zeile " Set wrd = Dokument.Object.Application" ist Gelb hinterlegt
@chris0102
DA BIST DU JA IM VBA-EDITOR, den brauchst nicht mehr extra öffnen, was übrigens über die Entwurfsansicht eines Formulars oder eines Moduls am Leichtesten zu bewerkstelligen wäre.
Brich die Codeausführung an der Stelle einfach mal ab - dann musst du doch eine Menüleiste sehen können, die du auch anklicken kannst oder?
Wenn ja, dann schau bitte nach ob sich da was in der Form zeigt, wie ich es beschrieben habe.
Wenn das nicht funktioniert, dann versuche wie
DF6GL angeraten hat die Datei mal auf deinen lokalen Rechner zu
KOPIEREN und Starte die Datei mal mit gedrückter SHIFT-Taste.
Dann wie bereits erwähnt entweder ein Modul in der Entwurfsansicht öffnen oder ein Formular und von dort aus in den Code / VBA-Editor.
Zu deiner erwähnten Fehlermeldung konnte ich folgendes finden:
http://support.microsoft.com/kb/212669/de (http://support.microsoft.com/kb/212669/de)
Hier wird u.A. auch ein Berechtigungsproblem im Netzwerk behandelt und defekte VB-Dll's,
allerdings im Zusammenhang mit Word 2000 aber die Verwandtschaft ist ja nicht so weitschichtig.
Mal sehen ob du nun an die Verweise kommst.