ich versuche gerade mittels VB auf Word zuzugreifen und ein Dokument zu
öffnen.
Beim ersten Mal geht es auch ganz gut, beim zweiten Mal (das Dokument habe
ich geschlossen und Word beendet)
erhalte ich "Fehler 462, Der Remote-Server-Computer existiert nicht oder ist
nicht verfügbar".
Hier mein code:
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Set wdApp = New Word.Application
wdApp.Visible = True
set wdDoc = Word.Documents.Open(strDokuPfad)
Set wdApp = Nothing
Set wdDoc = Nothing
Was muß ich hier ändern? Was muß ich generell -beim einfachen öffnen eines
Dokuments- beachten? Das Dokument wird später
aus Word heraus geschlossen....
Vielen Dank für Eure Hilfe,
Uwe Kühne
--
Uwe Kühne
78234 Engen
u...@spradey.de
0175-1586167
*Why do so many people drink too much coffee? Well, in fact, the just know
better*
Hab grad ein ähnliches Posting abgesetzt und erst im Nachhinein Deins
gesehen; sorry an alle Leser dieser NG.
Soweit ich bisher festgestellt habe, funktionieren die Lesezugriffe nach wie
vor, "nur" die Schreibzugriffe führen zu dieser Fehlermeldung. Ich habs
bisher nur auf "mein" Problem mit den Textmarken bezogen, scheint aber nun
genereller zu sein.
Viele Grüsse
Urs
> Beim ersten Mal geht es auch ganz gut, beim zweiten Mal (das Dokument habe
> ich geschlossen und Word beendet)
> erhalte ich "Fehler 462, Der Remote-Server-Computer existiert nicht oder ist
> nicht verfügbar".
>
Das bedeutet, irgendeiner Pointer (Zeiger) auf einem Word-Objekt wurde nicht
korrekt entfernt. Deshalb bleibt die erste Instanz noch in Windows geöffnet
(Taskmanager!).
In diesem Fall liegt es an die Reihenfolge der Auflösung der Pointers.
Folgende müssen in umgekehrter Reihenfolge erfolgen, weil das Dokument ein
"Kind" der Anwendung ist.
> Set wdApp = Nothing
> Set wdDoc = Nothing
>
Cindy Meister
INTER-Solutions, Switzerland
http://www.mvps.org/word
http://homepage.swissonline.ch/cindymeister
http://go.compuserve.com/MSOfficeForum
Rückfragen & Antworten nur in der Newsgroup, bitte!
danke für den Hinweis,
aber es funktioniert trotzdem nicht. Ich kann das Dokument das erst mal
öffnen, beim 2.Mal kommt diese Meldung. Erst wenn ich das Programm neu
starte, dann funktionierts. Komischerweise habe ich dieses Problem beim
Excel nicht.....
Grüße in die Schweiz,
Uwe
"Cindy Meister -WordMVP-" <CindyM...@swissonline.ch> schrieb im
Newsbeitrag news:VA.00006f50.00959e43@speedy...
Ich bin vorher bei jedem Öffnen der Dokumente wie folgt vorgegangen:
Dim objWordApp as Object
Set objWordApp = CreateObject("word.application")
objWordApp.Visible = True
' Mein Code
objWordApp.Quit
set objWordApp=nothing
Damit hatte ich auch diese Probleme wie schon beschrieben. Auch wenn
Create-Object beim Programmstart ausgeführt und erst beim Progrtammende
wieder geschlossen wird, verbessert sich nichts.
Wenn man statt dessen wie folgt deklariert, kannst Du die Methode
"CreateObject" und Deine Probleme vergessen:
'Public Declarations
Public pobjWordApp as New Word.Application
Public pobjWordDoc As Word.Document
Beim Programmstart, z.B. Öffnen des Hauptformulars dann die Anweisung:
'Form_Load
Set pobjWordApp = New Word.Application
Beliebig oft:
Dokument dort öffnen wo's erforderlich ist:
pobjWordDoc = pobjWordApp.Documents.Open(strFileName)
objWordApp.Visible = True
'Dein Code
pobjWordDoc.close
set pobjWordDoc = Nothing
objWordApp.Visible = False Dadurch wird das noch offene Word
"versteckt"
Ende Beliebiog oft.
Beim Programmende, z.B. beim Schliessen des Hauptformulars:
'Form_Close
On Error Resume Next 'Ist nötig, habs nicht näher untersucht, je nach
Programmende
pobjWordApp.Quit
Set pobjWordApp = Nothing
On Error goto 0
----------
Vielleich kann jemand erklären, wieso Methode mit "New" funktioniert und
diejenige mittels CreateObject nicht.
Ausserdem müsste ich Ereignisse von Word auswerten. Hab ich aber nicht
hingekriegt:
Public WithEvents objWordApp As New Word.Application kann man nicht
deklarieren (wegen New)
Vielen Dank
Urs
> Das bedeutet, irgendeiner Pointer (Zeiger) auf einem Word-Objekt wurde
nicht
> korrekt entfernt. Deshalb bleibt die erste Instanz noch in Windows
geöffnet
> (Taskmanager!).
Ich hatte das Problem auch. Im Taskmanager war .Quit und =Nothing definitv
KEIN Word mehr drinn. Siehe mein anderes Posting zu Diesem Thread. Hab auf
CreateObject verzichtet.
> In diesem Fall liegt es an die Reihenfolge der Auflösung der Pointers.
>> > Set wdApp = Nothing
> > Set wdDoc = Nothing
> >
>
Kann ich Uwe bestätigen: Ändert leider nichts am Problem; ist aber richtig.
Ansonsten Siehe oben.
Gruss Urs
merci für die Hinweise, ist ja echt ausführlich.
Nun ist es aber so, dass der Anwender Word nicht von meinem Programm aus
schließt, sondern explizit über Word.
Es geht um eine Dokumenten-Verwaltung, von der aus er div. Dokumente öffnen
kann, wie er gerade "lustig" ist....
Er öffnet das Dokument, arbeitet damit, evtl. schließt er mein Programm,
aber Word bleibt offen.
Für den Fall, dass er:
- mein Programm startet
- ein Word-Dokument aufruft
- das Word-Dokument schließt und
- es über mein Programm gleich nochmal aufruft
erhalte ich eben die im Betreff genannte Fehlermeldung.
Es ist zwar wahrscheinlich selten, dass er das Dok schließt und gleich
ncohmals öffnet, aber ihc wills ja nicht ausschließen.
Daher muß ich mal schauen, ob es sonst noch irgend eine Möglichkeit gibt,
das Problem zu beheben.
Über die "Quit"-Methode gehts leider nicht...
viele Grüße,
Uwe
"Urs Meyer" <kno...@gmx.ch> schrieb im Newsbeitrag
news:OAb##V9vCHA.1872@TK2MSFTNGP12...
Sowas ähnliches macht mein Progi auch. Und mit der im anderen Posting
angegebenen Lösung gehts seit heute Nachmittag bei mir problemlos. Lass
einfach eine Instanz von Word offen, solange das Progi läuft. Durch
visible-true/false beim Schliessen oder Öffnen eines Dokuments verschwindet
oder erscheint Word in der Taskleiste.
Daneben kannst Du Word beliebig öffnen und schliessen, Dokumente erstellen,
ändern oder löschen. Dies geschieht ja in einer anderen Instanz.
Urs
ok, ich werde mich mal dran machen und mich damit versuchen,
merci für die Hinweise,
Grüße und schöne Woche,
Uwe
>ich versuche gerade mittels VB auf Word zuzugreifen und
ein Dokument zu
>öffnen.
>Beim ersten Mal geht es auch ganz gut, beim zweiten Mal
(das Dokument habe
>ich geschlossen und Word beendet)
>erhalte ich "Fehler 462, Der Remote-Server-Computer
existiert nicht oder ist
>nicht verfügbar".
>Hier mein code:
>
>Dim wdApp As Word.Application
>Dim wdDoc As Word.Document
>Set wdApp = New Word.Application
>wdApp.Visible = True
>set wdDoc = Word.Documents.Open(strDokuPfad)
>
>Set wdApp = Nothing
>Set wdDoc = Nothing
>
>Was muß ich hier ändern? Was muß ich generell -beim
einfachen öffnen eines
>Dokuments- beachten? Das Dokument wird später
>aus Word heraus geschlossen....
Der gute alte 462 ist mir hinreichend bekannt. Remote-
Server meint wohl in diesem Fall Word. Du willst ein
Dokument öffnen, hast aber gar kein Word mehr dazu.
Habe das Problem (vielleicht etwas unelegant) wie folgt
gelöst. Meine App hat ein Fenster, welches immer offen
ist. Dieses Fenster enthält ein Objekt
Public WithEvents myeventWord as Word.Application
Damit hast Du ein Objekt zur Verfügung, dessen Ereignisse
Du abfangen kannst und darauf reagierst Du. Mit
DocumentChange erkennst Du alle Dokumentenvorgänge, mit
Quit z.B. das Schließen von Word. Das kann man nicht
verhindern. Aber Du kannst z.B. ein neues Word öffnen,
wenn der User die aktuelle instanz schließt. set
myeventword = CreateObject("Word.Application"). SOs tellst
Du auch sicher, daß Du nicht mit irgendeiner Instanz
arbeitest, sondern genau mit der, die das Programm bewacht.
Nur Achtung: 1 Dokument muß immer offen sein, sonst
erkennt das Objekt nicht, wenn Word beendet wird (Ist
ein "confirmed problem")
Gruß, Marleen
> aber es funktioniert trotzdem nicht. Ich kann das Dokument das erst mal
> öffnen, beim 2.Mal kommt diese Meldung.
>
Es soll aber. Etwas fehlt in Deinem Code, das ich immer benutze:
wdApp.Activate
wdApp.Visible = True
'(die Reihenfolge ist wichtig; ich glaube, so stimmt's)
hm, das klingt kompliziert, aber ich werds auch mal auf diese Art probieren.
vielen Dank für den Tipp,
viele Grüße,
Uwe
"Marleen Körner" <marleen...@lycos.de> schrieb im Newsbeitrag
news:03c701c2c11d$c9987760$d7f82ecf@TK2MSFTNGXA14...