Kein Zugriff auf Datei nach speichern im Dateisystem (VBA?!)

Mitglied: greatsteffen

greatsteffen (Level 1) - Jetzt verbinden

29.08.2006, aktualisiert 30.08.2006, 6335 Aufrufe, 5 Kommentare

Ein Worddokument wird per Makro auf dem Server abgelegt (gespeichert). Da es aber noch geöffnet ist kann ein Prozess auf dem Server nicht auf das Dokument zugreifen und es verarbeiten.

Wie in der Einleitung kurz geschildert, kann der Serverprozess, welcher alle 2 Minuten das Verzeichnis überprüft nicht auf die geöffneten Worddokumente zugreifen. Ich möchte die Dokumente nun irgendwie schließen (das Handle oder sonst was, sodass der Server diese anpacken kann und verarbeiten. Es sollen ja nur Snapshots von dem Dokument gespeichert werden und kein permanenter verlauf.

kurz um >> Das Worddokument schließen ohne es wirklich zu schließen ;)

Am besten das ganze per vba-makro....

wenn jemand eine idee hat wäre das super!
Mitglied: Biber
29.08.2006 um 14:13 Uhr
Na, "irgendwie schließen" könnte aber den normalen Arbeitsablauf Deiner User geringfügig beeinträchtigen.
Reicht ein .Document.Save nicht?

Ich würde die Word-Datei im reinen Nur-Lese-Modus öffnen im neuen Prozess.
Wenn ich überhaupt etwas davon "lesen" will.

Was soll den das hehre Ziel dieses Serverprozesses sein?

Gruß
Biber
Bitte warten ..
Mitglied: greatsteffen
30.08.2006 um 08:03 Uhr
auf dem verzeichnis auf dem server lauscht ein xmlmaker, welcher auf eine steuerdatei wartet, die durch ein makro im word zusammen mit dem dokument selbst auf dem server abgelegt werden. dieser xml maker erzeugt eine neue datei (xml), die an ein archivsystem übergeben wird. dieses archivsystem schnappt sich das xml-file und packt es zusammen mit dem doc ins archivierungssystem.

klingt alles ein wenig kompliziert, klappt aber eigentlich schon ganz gut, nur eben an dem punkt, wo das archivsystem das erzeugte xml-file schnappt und zusammen mit dem word-dokument verarbeiten will hakt es, weil das word dokument ja noch beim user geöffnet ist.

das ding ist nur, es soll ja auch beim user geöffnet bleiben, damit er weiter dran arbeiten kann. jedesmal, wenn er das archivierungsmakro ausführt bekommt die datei einen neuen timestampnamen. somit ist es möglich immer wieder eine neuere versin des dokumentes im archiv abzulegen.

und zum schluss:
erst beim erneuten ausführen des makros wird ja die "alte" dokumentversion geschlossen und eine neue auf dem server angelegt, somit kann nun die alte version verarbeitet werden. der user soll aber nicht 2 mal auf das makro klicken um die als erstes erzeugte version ins archiv zu bekommen.

die lösung:???
meine idee wäre nun den kram zuerst in einem zwischenordner zu speichern und nach dem speichern die dateien in den eigentlichen zielordner zu kopieren. nach der zeit x wird der zwischen ordner per task geleert (z.b. nachts um 24 uhr, dann erwischt man hoffentlich keine "noch nicht in den zielordner verschobenen dateien".

das ganze ist aber recht umständlich und deswegen soll das ja auch irgenwie per makro klappen, das ich dem rechner, ähnlich wie im unixsystem, die datei untern hintern wegziehe, obwohl er sie noch offen hat...

MfG - Steffen
Bitte warten ..
Mitglied: greatsteffen
30.08.2006 um 10:38 Uhr
ich hab das makro erweitert und versuche das Doc zu kopieren, allerdings verweigert er mir den zugriff auf das doc!!!!

kann man den kopiervogang erzwingen?
Bitte warten ..
Mitglied: Biber
30.08.2006 um 10:46 Uhr
ich hab das makro erweitert und versuche das
Doc zu kopieren, allerdings verweigert er mir
den zugriff auf das doc!!!!

kann man den kopiervogang erzwingen?

Kannst Du denn von diesem Makro bzw. von der letzten Erweiterung mal die relevanten Zeilen posten bitte?

Das ist mir so (noch) zu abstrakt.

Danke
Biber
Bitte warten ..
Mitglied: greatsteffen
30.08.2006 um 11:54 Uhr
ok - das prob schein zu 99% gelöst!
hab trick 17 angewendet, auch wenn das nicht die beste variante ist.
ich speichere das dok einfach sofort ein 2.mal mit einem anderem namenszusatz, dann kann ich die erste version weiterverarbeiten.


der gesamte makrocode sieht so aus (sollte auch in einem blanko dokument funzen):
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

verbesserungsvorschläge??
ist natürlich ein bissel umständlich 2 mal was zu speichern und es nach dem kopieren wieder zu löschen, aber immerhin klappt es! ;)

die restlichen "leichen" aus dem zwischenablagenordner kanni ich ja nachts (wenn hoffentlich kein mitarbeiter mehr ein dok offen hat) per task löschen lassen...

;)
Bitte warten ..
Heiß diskutierte Inhalte
Hyper-V
ESXi free oder Windows Hyper-V Server 2019
lukas0209Vor 1 TagAllgemeinHyper-V27 Kommentare

Hallo, ich brauche ca. 2 oder 3 Windows 10 virtualisiert um Dinge zu testen. Ist es dafür sinnvoller ein Windows Hyper-V Server 2019 (kostenlos) ...

Exchange Server
0-day Exploit Chain für Exchange Server - Patches verfügbar
kgbornVor 1 TagInformationExchange Server6 Kommentare

Zur Info: Microsoft warnt vor einer Exploit-Chain, bei der vier 0-day-Schwachstellen für gezielte Angriffe auf Exchange per Outlook Web App kombiniert werden (eine chines. ...

Netzwerkgrundlagen
DS-Lite Verständnisfrage Wireguard
gelöst fnbaluVor 1 TagFrageNetzwerkgrundlagen23 Kommentare

Hallo zusammen, bisher läuft bei mir alles klassisch. pfSense mit DDNS und ich verbinde mich mit OpenVPN in das Heimnetz und erspare mir so ...

HTML
Ich brauche dringend Hilfe !
gelöst JulianpustVor 10 StundenFrageHTML16 Kommentare

Hallo erstmal, ich habe großen Mist gebaut in der Firma wo ich gerade mal 2 Tage arbeite. Was ist passiert: Ich sollte von Gmail ...

Windows 10
Windows 10 schickt lokale Anfragen an das Gateway - was tun?
gelöst runthegaunzVor 1 TagFrageWindows 1015 Kommentare

Hallo! Ich bin vor ein paar Tagen wieder von Linux auf Windows umgestiegen. Ich hab die Windows 10 Version 20H2 installiert, wurde von Windows ...

Switche und Hubs
23 Cisco Switch einrichten - Wie am einfachsten?
gelöst Freak-On-SiliconVor 1 TagFrageSwitche und Hubs18 Kommentare

Hallo; Ich habe hier 4stk Cisco SX350X-24 9Stk Cisco SG350X-48P 10Stk Cisco SG350X-48 Diese werden aufgeteilt auf 9 Racks, und ersetzen alte HP Switches. ...

Exchange Server
Aktuelle Exchange Sicherheitslücke
jojo0411Vor 1 TagAllgemeinExchange Server11 Kommentare

Hallo Leute, Momentan gibt es da wieder einmal ein schönes neues Thema. Sehe ich das richtig das ich mit Exchange 2016 und CU 19 ...

Netzwerke
Smarthome Heimnetzwerk absichern
hell.wienVor 1 TagFrageNetzwerke12 Kommentare

Hallo. Ich mach mir gerade gedanken wie ich meine neue Wohnung sicher mache Überischthalber zur Hardware: Vorhanden: Modem APU4D4 Cisco SG250X-24P Mikrotik cAP ac ...