Überprüfen, ob zu öffnete Mappe durch anderen User gesperrt ist
Romero
- javascript
0 unknown0 Jörg Reinholz
Hallöchen an Euch,
ich hatte schonmal eines ähnliches Thema hier beschrieben.
Der bisherige Weg war der, dass ich mittels VBScript (aus Javascript heraus) eine EXCEL-Mappe öffnen lies, da meine Funktionen ausführen lasse, die EXCEL-Instanz zurück an Javascript übergab, um diese mittels Buttons speichern und auch drucken ließ.
Nun kann es passieren, dass die Mappe aber durch einen anderen User bereits geöffnet ist.
Wenn ich den bisherigen Weg gehe, diese Mappe über VBScript öffne und dann speichern lassen möchte, kann es ja passieren, dass die Mappe gesperrt ist und meine EXCEL-Instanz abbricht. Und wenn der andere User diese Mappe dann schließt, dann ist meine Instanz leider abhanden gekommen bzw. abgebrochen.
Also möchte ich gern, dass ich vor dem Speichern eine Abfrage starte, wo ich den Pfad der EXCEL-Mappe überprüfe, ob die Mappe durch einen anderen User (oder durch mich selbst) gesperrt ist oder nicht?
Es gibt zwar die Möglichkeit, die Arbeitsmappe freizugeben um dieses Problem zu umgehen, aber dann funktionieren die Makros innerhalb der Mappe nicht mehr, welche aber weiter genutzt werden sollten.
Kann mir dabei einer Helfen?
Geht es über das FSO-Objekt (Scripting.FileSystemObject)?
LG Romero
Und die Doku die ich dir schon ein paar mal verlinkt habe hilft dir da nicht weiter?
ProtectStructure oder ReadOnly sind es nicht?
Und die Doku die ich dir schon ein paar mal verlinkt habe hilft dir da nicht weiter?
ProtectStructure oder ReadOnly sind es nicht?
Hy unknown,
ja das mit dem ReadOnly geht es.
Sobald diese Mappe offen ist (egal durch wen) und ReadOnly ist True, dann wird diese mir auch angezeigt.
Vielen Dank.
Daran hab ich leider gesagt, gar nicht mehr gedacht.
Danke nochmals.
LG Romero
Ein kleines Problem bleibt aber.
Die Mappe ist z.B. bereits offen. Durch mein Script wird diese Mappe erneut automatisch geöffnet. Nun zeigt er mit dem ReadOnly an, dass nur Leserechte bestehen.
Schließe ich aber die Mappe, welche ich sichtbar auf dem Rechner sehe (im Task-Manager sind ja beide aufgeführt), bricht das Script ab.
Also ich erhalte die Meldung, dass Mappe bereits offen ist (ReadOnly = True), schließe die Mappe. Versuche dann erneut zu Speichern, dann kommt eine Meldung hoch, dass die Mappe "xy.xls" wieder verfügbar ist und wählen sie den Lese-/Schreibzugriff aus.
Egal was ich da mache (Lese-/Schreibzugriff oder Abbrechen), die Mappe erscheint erneut, beim Schließen mit der Abfrage ob Speichern und beim Script kommt dann "Klasse unterstützt keine Automatisierung". Obwohl laut Task-Manager noch eine EXCEL-Instanz offen ist.
Ich weiß, dass ich da grad die übers Script zu speichernde Mappe geschlossen hab. Aber wie kann ich das umgehen, dass er weiterhin diese EXCEL-Instanz mitführt?
Mein Codeauszug sieht da wie folgt aus:
document.getElementById( "EXCEL_Schleife_Speichern" ).onclick = function() {
if( EXCEL_Speicherung.Workbook.ReadOnly )
{
alert( "Die Mappe ist bereits offen. Bitte zuerst schließen." );
} else {
document.getElementById( "EXCEL_Schleife_Beenden" ).disabled = true;
EXCEL_Speicherung.Workbook.Save();
document.getElementById( "EXCEL_Schleife_Weiter" ).style.visibility = "visible";
}
};
Die "EXCEL_Speicherung" ist die geöffnete EXCEL-Instanz aus dem VBScript.
LG Romero
Egal was ich da mache (Lese-/Schreibzugriff oder Abbrechen), die Mappe erscheint erneut, beim Schließen mit der Abfrage ob Speichern und beim Script kommt dann "Klasse unterstützt keine Automatisierung". Obwohl laut Task-Manager noch eine EXCEL-Instanz offen ist.
Das verstehe ich nicht.
Ich weiß, dass ich da grad die übers Script zu speichernde Mappe geschlossen hab. Aber wie kann ich das umgehen, dass er weiterhin diese EXCEL-Instanz mitführt?
Hatten wir das nicht schon hier? Oder habe ich das auch falsch verstanden?
Egal was ich da mache (Lese-/Schreibzugriff oder Abbrechen), die Mappe erscheint erneut, beim Schließen mit der Abfrage ob Speichern und beim Script kommt dann "Klasse unterstützt keine Automatisierung". Obwohl laut Task-Manager noch eine EXCEL-Instanz offen ist.
Das verstehe ich nicht.
Ja ich eben auch nicht :)
Ich weiß, dass ich da grad die übers Script zu speichernde Mappe geschlossen hab. Aber wie kann ich das umgehen, dass er weiterhin diese EXCEL-Instanz mitführt?
Hatten wir das nicht schon hier? Oder habe ich das auch falsch verstanden?
Ja das oben genannte Problem war ja das "alte" Problem, also wie ich die Mappe schließen kann ohne das "Rückstände" im Task-Manager" zurückbleiben.
Das was ich nun habe, ist ein ähnliches Problem. Nur das ich jetzt vorher prüfen muss, ob diese bestimmte Mappe bereits offen ist oder nicht.
Das prüfe ich ja mittels ReadOnly. Und wenn dieses "Nur-Lese-Recht" nicht zutrefflich ist, kann ich diese Mappe speichern. Und genau da ist das Problem, wenn ich diese Mappe bereits offen hatte, nach einer Meldung, dass ich "nur lesen" kann, schließe, ich die Speicherung nicht ausführen kann. Weil da mein Excel-Objekt "verschwunden" ist. Also das mit der "Klasse unterstützt keine Automatisierung". So wie das bei deinem oben genannten Link das Thema u.a. war.
Und wenn nun die Mappe, egal wer sie vorher offen hatte, schließt und ein andere diese Mappe dann speichern will, kommt eine Meldung von Excel hoch, dass die Mappe wieder verfügbar ist (als Lese-/Schreibzugriff), man diese Mappe "seherisch öffnen" kann, aber das Script weiter in dem ReadOnly = True - Status bleibt. Kann die Mappe zwar händisch schließen, aber da kommt die Frage des Speicherns und beim Script die Fehlermeldung der Nicht-Automatisierung der Klasse.
Sieht vielleicht etwas verwirrend aus, aber anders als das was passiert, kann ich leider nicht beschreiben. Mich wundert nur, das MEIN Excel-Objekt bei der Übergabe aus VBScript, wenn es ein ANDERER Schließt, verschwindet bzw. warum bleibt der ReadOnly-Status erhalten wenn die Mappe bereits geschlossen wurde?
LG Romero
Egal was ich da mache (Lese-/Schreibzugriff oder Abbrechen), die Mappe erscheint erneut, beim Schließen mit der Abfrage ob Speichern und beim Script kommt dann "Klasse unterstützt keine Automatisierung". Obwohl laut Task-Manager noch eine EXCEL-Instanz offen ist.
Das verstehe ich nicht.Ja ich eben auch nicht :)
Ich verstehe nicht was du beschreibst.
Das prüfe ich ja mittels ReadOnly. Und wenn dieses "Nur-Lese-Recht" nicht zutrefflich ist, kann ich diese Mappe speichern. Und genau da ist das Problem, wenn ich diese Mappe bereits offen hatte, nach einer Meldung, dass ich "nur lesen" kann, schließe, ich die Speicherung nicht ausführen kann. Weil da mein Excel-Objekt "verschwunden" ist. Also das mit der "Klasse unterstützt keine Automatisierung". So wie das bei deinem oben genannten Link das Thema u.a. war.
Und wenn nun die Mappe, egal wer sie vorher offen hatte, schließt und ein andere diese Mappe dann speichern will, kommt eine Meldung von Excel hoch, dass die Mappe wieder verfügbar ist (als Lese-/Schreibzugriff), man diese Mappe "seherisch öffnen" kann, aber das Script weiter in dem ReadOnly = True - Status bleibt. Kann die Mappe zwar händisch schließen, aber da kommt die Frage des Speicherns und beim Script die Fehlermeldung der Nicht-Automatisierung der Klasse.
Ich kann nicht folgen!
Sieht vielleicht etwas verwirrend aus, aber anders als das was passiert, kann ich leider nicht beschreiben.
Schreib das mal verständlich auf, ala
* Mappe1 wird von hand geöffnet
* Mappe2 wird ReadOnly per Script geöffnet
...
Mich wundert nur, das MEIN Excel-Objekt bei der Übergabe aus VBScript, wenn es ein ANDERER Schließt, verschwindet
Wieso schließt ein anderer dein Excel-Objekt? Warum sollte es dann noch da sein, wenn es geschlossen wurde?
bzw. warum bleibt der ReadOnly-Status erhalten wenn die Mappe bereits geschlossen wurde?
Welche Mappe wurde geschlossen? Welche hat ReadOnly-Status? Wurde die mit ReadOnly-Status denn nicht ReadOnly geöffnet?
Hy unknown,
also:
Die Mappe, um die es beispielsweise geht, nennen wir mal C:/test.xls.
Diese Mappe hat z.B. User1 bei sich auf dem Rechner offen.
Nun nutzt User2 mein Script, liest, wie gesagt, eine externe Datenbank via VBScript aus und möchte nun auf die Mappe test.xls zugreifen, um da die Daten zu speichern.
Und das funktioniert ja nicht, weil User1 diese Mappe offen hat. Also ist der ReadOnly-Status dieser Mappe auf True gesetzt. Es gibt zwar die Möglichkeit, die Arbeitsmappe freizugeben, aber dann werden alle Makros in dieser test.xls-Mappe unbrauchbar bzw. werden nicht ausgeführt.
Nun schließt User1 diese Mappe. Die Mappe ist nun wieder frei zum bearbeiten, der ReadOnly-Status also False. ABER: der ReadOnly-Status der durch User2 übers Script geöffnete Mappe test.xls ist ja weiterhin auf True gesetzt, weil durch das Schließen durch User1, sich ja dieser Status ja nicht ändert. Die übers Script geöffnete Mappe bleibt weiterhin gesperrt.
Zusammengefasst:
User1 -> geöffnete Mappe test.xls
User2 -> startet Script, lässt test.xls im Hintergrund ebenfalls öffnen
User2 -> erhält Meldung, dass test.xls durch User1 gesperrt ist
User1 -> schließt Mappe test.xls
User2 -> kann Mappe test.xls nutzen, da die Sperrung aufgehoben wurde -> da die Problematik
Nun meine Frage:
Wie kann ich die Mappe, welche übers Script geöffnet wurde, wieder entsperren bzw. freigeben, so dass User2 die Daten speichern kann?
LG Romero
Hallo,
Wie kann ich die Mappe, welche übers Script geöffnet wurde, wieder entsperren bzw. freigeben, so dass User2 die Daten speichern kann?
nach meinem Verständnis: Gar nicht. User2 muss das Dokument schließen und neu öffnen.
Ein Office-Dokument, das schreibgeschützt geöffnet wurde, bleibt für diesen Nutzer schreibgeschützt, bis er es schließt. Beim erneuten Öffnen *kann* es beschreibbar sein, wenn die Voraussetzungen passen. Aber zwischendurch lässt sich der Status AFAIK nicht ändern.
Ciao,
Martin
HY zurück,
nach meinem Verständnis: Gar nicht. User2 muss das Dokument schließen und neu öffnen.
Ein Office-Dokument, das schreibgeschützt geöffnet wurde, bleibt für diesen Nutzer schreibgeschützt, bis er es schließt. Beim erneuten Öffnen *kann* es beschreibbar sein, wenn die Voraussetzungen passen. Aber zwischendurch lässt sich der Status AFAIK nicht ändern.
D.h. also, ich müsste dem Script "sagen", dass er vor dem Öffnen prüfen muss, ob die Mappe offen ist oder nicht und da gegebenfalls eine Meldung ausgeben, wenn diese Mappe gesperrt ist.
Und erst wenn diese frei wäre, kann ich dann den Rest tun, mit dem Beschreiben der Mappe mit dem Inhalt, welches aus der Datenbank entnommen wurde.
LG Romero
Wie kann ich die Mappe, welche übers Script geöffnet wurde, wieder entsperren bzw. freigeben, so dass User2 die Daten speichern kann?
Mit schließen und neu öffnen sollte es auf jeden Fall gehen. Das schein diese Funktion ChangeFileAccess für dich zu übernehmen. Sonst musst du mal in die Docu schauen, ob es noch etwas anderes gibt.
Wenn du schon Änderungen vorgenommen hast, werden die vermutlich verworfen, denn derjenige der das File zuerst geöffnet hatte könnte ja auch geändert haben. Und mergen wird Excel wohl eher nicht.
Hy unknown,
Mit schließen und neu öffnen sollte es auf jeden Fall gehen. Das schein diese Funktion ChangeFileAccess für dich zu übernehmen. Sonst musst du mal in die Docu schauen, ob es noch etwas anderes gibt.
Wenn du schon Änderungen vorgenommen hast, werden die vermutlich verworfen, denn derjenige der das File zuerst geöffnet hatte könnte ja auch geändert haben. Und mergen wird Excel wohl eher nicht.
Naja ich habe ja Änderungen drin bzw. erstell ja entweder ein neues Tabellenblatt oder überarbeite ein bestehendes.
Also müsste ich, bevor ich diese Tabelle erstelle/überarbeite/... (mittels VBScript), diese Abfrage tätigen und über ChangeFileAccess Mode:= xlReadWrite den ReadOnly-Status ändern? Oder geht es auch, wenn ich diese gesamte Excel-Applikation (mit der Änderung bzw. Neuerstellung des Blattes im Hintergrund) zurück an Javascript übergebe (so wie ich es schonmal beschrieben hatte) und da dieses ChangeFileAccess anwende?
LG Romero
Naja ich habe ja Änderungen drin bzw. erstell ja entweder ein neues Tabellenblatt oder überarbeite ein bestehendes.
Das ist in einem ReadOnly-Dokument aber nicht sinnvoll.
Also müsste ich, bevor ich diese Tabelle erstelle/überarbeite/... (mittels VBScript), diese Abfrage tätigen
Beim Öffnen wirst du doch gefragt ob du das Dokument schreibgeschützt öffnen möchtest. Dann sollte klar sein, dass Änderungen nicht möglich sind.
und über ChangeFileAccess Mode:= xlReadWrite den ReadOnly-Status ändern?
Wenn du es erst bei nötigen Änderungen prüfen willst und dann die Datei neu einlesen willst, ist das auch eine Möglichkeit.
Oder geht es auch, wenn ich diese gesamte Excel-Applikation (mit der Änderung bzw. Neuerstellung des Blattes im Hintergrund) zurück an Javascript übergebe (so wie ich es schonmal beschrieben hatte) und da dieses ChangeFileAccess anwende?
Wieso sollte das gehen? Es ist das selbe Objekt. Ob du ChangeFileAccess in JS oder VB ausführst spielt keine Rolle.
Hy unknown,
Also müsste ich, bevor ich diese Tabelle erstelle/überarbeite/... (mittels VBScript), diese Abfrage tätigen
Beim Öffnen wirst du doch gefragt ob du das Dokument schreibgeschützt öffnen möchtest. Dann sollte klar sein, dass Änderungen nicht möglich sind.
Das passiert beim automatischem Öffnen leider nicht. Also es kommt da keine Meldung darüber, ob es schreibgeschützt ist.
Weil mein "Öffnen-Code" in VBS so aussieht: ExcelApp.Workbooks.Open("C:/test.xls"), ganz ohne Zusätze.
Oder geht es auch, wenn ich diese gesamte Excel-Applikation (mit der Änderung bzw. Neuerstellung des Blattes im Hintergrund) zurück an Javascript übergebe (so wie ich es schonmal beschrieben hatte) und da dieses ChangeFileAccess anwende?
Wieso sollte das gehen? Es ist das selbe Objekt. Ob du ChangeFileAccess in JS oder VB ausführst spielt keine Rolle.
Naja, direkt eine Rolle spielt es nicht, da ja, wie du sagtes, ich das Objekt von BS an JS übergebe.
Aber wo genau müsste ich solch eine Abfrage starten?
Ich rufe aus JS ein VBS-Code auf (wo ich sowohl die Excel-Tabelle öffne und auch die Tabelle befülle), wo ich eine (u.U. schreibgeschütze) Excel-Tabelle öffnen lasse und dann Änderungen vornehme. Dann übergebe ich dieses Excel-Objekt an JS zurück, wo ich dann mittels Buttons die Mappe (anhand des übergebenen Excel-Objektes) speichere oder halt schließe.
Soll ich das Öffnen und deren Abfrage in eine Extra-Datei auslagern und wenn diese "ungeschützt" ist, dann die Tabelle befüllen? Wäre glaub ich der bessere Weg oder?
LG Romero
Ich rufe aus JS ein VBS-Code auf (wo ich sowohl die Excel-Tabelle öffne und auch die Tabelle befülle), wo ich eine (u.U. schreibgeschütze) Excel-Tabelle öffnen lasse und dann Änderungen vornehme. Dann übergebe ich dieses Excel-Objekt an JS zurück, wo ich dann mittels Buttons die Mappe (anhand des übergebenen Excel-Objektes) speichere oder halt schließe.
Und warum du das so machst, weisst nur du alleine, dass das nicht sinnvoll ist wurde dir vermutlich auch schon gesagt.
Soll ich das Öffnen und deren Abfrage in eine Extra-Datei auslagern wenn diese "ungeschützt" ist, dann die Tabelle befüllen? Wäre glaub ich der bessere Weg oder?
In welcher Datei auch immer, du könntest wenn du Änderungen vornehmen willst
* überprüfen ob du das darfst
* wenn nein lädtst du die Datei neu
* ist sie dann immer noch ReadOnly teillst du dass dem User mit und lehnst Änderungen ab
Der bisherige Weg war der, dass ich mittels VBScript (aus Javascript heraus) eine EXCEL-Mappe öffnen lies, da meine Funktionen ausführen lasse, die EXCEL-Instanz zurück an Javascript übergab, um diese mittels Buttons speichern und auch drucken ließ.
Nun kann es passieren, dass die Mappe aber durch einen anderen User bereits geöffnet ist.
Wenn ich den bisherigen Weg gehe, diese Mappe über VBScript öffne und dann speichern lassen möchte, kann es ja passieren, dass die Mappe gesperrt ist und meine EXCEL-Instanz abbricht. Und wenn der andere User diese Mappe dann schließt, dann ist meine Instanz leider abhanden gekommen bzw. abgebrochen.
Es nützt nichts im Stall das Licht auszumachen und dann dem Esel zu sagen: "Sei ein Pferd!"
Offensichtlich wurde nicht nach DEM Generalplan vorgegangen: Erst mal die Aufgaben festlegen, dann schauen welche Software die erfüllen kann. Es wurde statt dessen irgendwas genommen (Excel) und dann, um es via Web auszuführen, eine Krücke drum herum gebaut. Daraus ergeben sich zwangsläufig Probleme, die nicht behebbar sind.
Definiere erst mal alle Aufgaben. Trenne in "muss sein" und "Luxus".
Jörg Reinholz
Hy Jörg,
Es nützt nichts im Stall das Licht auszumachen und dann dem Esel zu sagen: "Sei ein Pferd!"
Aber mein Esel kackt Goldtaler, da muss es kein Pferd sein :)
Spaß bei Seite.
Offensichtlich wurde nicht nach DEM Generalplan vorgegangen: Erst mal die Aufgaben festlegen, dann schauen welche Software die erfüllen kann. Es wurde statt dessen irgendwas genommen (Excel) und dann, um es via Web auszuführen, eine Krücke drum herum gebaut. Daraus ergeben sich zwangsläufig Probleme, die nicht behebbar sind.
Definiere erst mal alle Aufgaben. Trenne in "muss sein" und "Luxus".
Jörg Reinholz
Ja klar ergeben sich Probleme, aber wenn ich nunmal nur diese Form von Tabellen habe, welche auch für die anderen Nutzer genutzt werden, kann ich leider nur dieses EXCEL nehmen.
Ich könnte auch all die Mappen mit deren weit über 100 Blätter in eine ACCESS-Datenbank einbinden, aber für das was ich Nutzen will, ist der Aufwand einfach zu riesig.
OK, folgende Aufgaben sollte, nein MUSS, mein Script erledigen:
Mittels meinem Script und einer Auswahlliste möchte ich eine TXT erzeugen, welche diverse Daten enthält (eine Stückliste).
Über mein Script haben die User nun die Möglichkeit, auf eine von IBM Personal Communications erschaffene Plattform (ebenfalls eine riesige Datenbank, wo wir aber nur Leserechte haben), verschiedene Daten zu ziehen bzw. Daten mittels sendKeys-Befehle in VBScript auszulesen. Wenn ich diese Daten nun habe, müssen wir diese Daten speichern. Und das geht z.B. (auch in ACCESS) in EXCEL.
Da aber die EXCEL-Mappen für viele Nutzer gleichzeitig nutzbar sein muss/sollte, muss ich vorher überprüfen, ob diese bereits offen ist. Damit kein Datenverlust entsteht und das Script blockiert oder dergleichen.
Wie gesagt, ich kann nur mit den Programmen arbeiten, welche mir angeboten werden. Und ich arbeiter mittels Javascript und in einem HTA-Datei-Format, weil ich da nunmal angefangen habe.
Es gibt aber immer andere Wege, welche zum Ziel führen. Und es gibt auch bessere Anwendungen als mit Javascript und VBScript zu arbeiten (z.B. Java). Deshalb frag ich ja nach, ob es auch auf diesem (meinen) Wege funktioniert.
Trotzdem Danke für deinen Beitrag.
LG Romero
Hallo,
sag mal, hat es einen Grund, dass du die Namen von Anwendungen wie Excel oder Access durchgehend in Großbuchstaben schreibst?
Ist dir das überhaupt bewusst? Wenn ja ... warum?
Das ist zumindest sehr unüblich.
Ciao,
Martin
Hallo,
sag mal, hat es einen Grund, dass du die Namen von Anwendungen wie Excel oder Access durchgehend in Großbuchstaben schreibst?
Ist dir das überhaupt bewusst? Wenn ja ... warum?Das ist zumindest sehr unüblich.
Ciao,
Martin
Hy Martin,
ja mache ich bewusst. Gute Frage warum. Vielleicht weil ich es gewohnt bin aus anderen Foren, deshalb.
Wenn es euch stört, werde ich es in Zukunft unterlassen Ok?
LG Romero
Hi,
sag mal, hat es einen Grund, dass du die Namen von Anwendungen wie Excel oder Access durchgehend in Großbuchstaben schreibst?
Ist dir das überhaupt bewusst? Wenn ja ... warum?
ja mache ich bewusst. Gute Frage warum. Vielleicht weil ich es gewohnt bin aus anderen Foren, deshalb.
oha. Ich habe das noch nirgends gesehen. Das wäre mir aufgefallen.
Wenn es euch stört, werde ich es in Zukunft unterlassen Ok?
"Stören" wäre zuviel gesagt, es ist vielleicht eine persönliche Eigenheit. Eine auffällige.
Aber es ist ein bekanntes Phänomen, dass ein Wort in Großbuchstaben den Lesefluss stocken lässt, man bleibt jedesmal einen Moment dran hängen. Vielleicht weil man unwillkürlich und unbewusst versucht, die Buchstabengruppe als Akronym oder Abkürzung zu begreifen?
Deswegen funktioniert Großschreibung ja auch prima, wenn man EIN WORT im Satz besonders betonen möchte - der Leser wird dieses eine Wort (oder die Wortgruppe) garantiert besonders aufmerksam wahrnehmen.
Ciao,
Martin
@@Der Martin:
nuqneH
Deswegen funktioniert Großschreibung ja auch prima, wenn man EIN WORT im Satz besonders betonen möchte - der Leser wird dieses eine Wort (oder die Wortgruppe) garantiert besonders aufmerksam wahrnehmen.
Das waren jetzt aber ZWEI WÖRTER. Und du hattest die Aufmerksamkeit selbst auf den Fehler gelenkt. ;-)
Hat was von http://images.tagseoblog.de/kunst-malerei/farben.php. ;-)
Qapla'
Mittels meinem Script und einer Auswahlliste möchte ich eine TXT erzeugen, welche diverse Daten enthält (eine Stückliste).
Aha.
Über mein Script haben die User nun die Möglichkeit, auf eine von IBM Personal Communications erschaffene Plattform (ebenfalls eine riesige Datenbank, wo wir aber nur Leserechte haben), verschiedene Daten zu ziehen
Soso.
Da aber die EXCEL-Mappen für viele Nutzer gleichzeitig nutzbar sein muss/sollte,
Hier hast Du das "Aus" für Excel definiert.
muss ich vorher überprüfen, ob diese bereits offen ist. Damit kein Datenverlust entsteht und das Script blockiert oder dergleichen.
s.o.
Wie gesagt, ich kann nur mit den Programmen arbeiten, welche mir angeboten werden.
Du willst damit nicht etwa zum Ausdruck bringen, dass eine übergeordnete Instanz verhindert, dass Du einen geeigneten Weg gehst?
Und ich Arbeiter mittels Javascript und in einem HTA-Datei-Format, weil ich da nunmal angefangen habe.
Tja. So ist das halt. Wenn man feststellt, dass man auf dem Holzweg ist, dann muss man (egal wie weit man schon ist) eben auch zurückgehen. Sonst landet man nur noch tiefer im Wald.
Es gibt aber immer andere Wege, welche zum Ziel führen. Und es gibt auch bessere Anwendungen als mit Javascript und VBScript zu arbeiten (z.B. Java). Deshalb frag ich ja nach, ob es auch auf diesem (meinen) Wege funktioniert.
Ich hab das schon "Krücke" genannt. Kein orthopädisches Hilfsmittel kann Gliedmaßen wirklich ersetzen. Und hier hinkt nicht der Vergleich.
Nimm eine Datenbank. Nimm dazu eine Skriptsprache. Hinweis: Access ist keine Datenbank. Aber als Oberfläche für angebundene relationale Datenbanken oft ganz brauchbar. wenn man auf das "IBM Personal Communications" - "Dingsbums" via ODBC zugreifen kann, dann kann Access sogar damit.
Trotzdem Danke für deinen Beitrag.
Bitte.
Jörg Reinholz
Hy Jörg,
Da aber die EXCEL-Mappen für viele Nutzer gleichzeitig nutzbar sein muss/sollte,
Hier hast Du das "Aus" für Excel definiert.
Wieso aus? Allein die Einstellung "Arbeitsmappe freigeben" lässt da die Nutzbarkeit mehrerer User zu
Wie gesagt, ich kann nur mit den Programmen arbeiten, welche mir angeboten werden.
Du willst damit nicht etwa zum Ausdruck bringen, dass eine übergeordnete Instanz verhindert, dass Du einen geeigneten Weg gehst?
Niemals würde ich DAS behaupten *zum Chef guck*.
Und ich Arbeiter mittels Javascript und in einem HTA-Datei-Format, weil ich da nunmal angefangen habe.
Tja. So ist das halt. Wenn man feststellt, dass man auf dem Holzweg ist, dann muss man (egal wie weit man schon ist) eben auch zurückgehen. Sonst landet man nur noch tiefer im Wald.
Da mach ich mir keine Sorgen. Mein Paps ist Förster, der hat schon jeden ausm Wald befreit :)
Spaß bei Seite. Um zu wissen, ob man einen anderen Weg gehen sollte, wollte ich wissen, ob dieser Weg, den ich jetzt im Moment eingeschlagen hab, der richtige ist. Erst wenn er falsch wäre, müsste ich zurück gehen. Oder weißt du immer am Anfang, dass dein einzuschlagender Weg immer der richtige Weg ist? Wenn ja, wie lauten die Lottozahlen für Samstag? :)
Nimm eine Datenbank. Nimm dazu eine Skriptsprache. Hinweis: Access ist keine Datenbank. Aber als Oberfläche für angebundene relationale Datenbanken oft ganz brauchbar. wenn man auf das "IBM Personal Communications" - "Dingsbums" via ODBC zugreifen kann, dann kann Access sogar damit.
Und was wäre deiner Meinung nach der idealste bzw. beste Weg? Also Programm + Scriptsprache um meinen anvisierten Weg zu gehen, vllt. sogar fortzusetzen?
LG Romero
Hallo
Da aber die EXCEL-Mappen für viele Nutzer gleichzeitig nutzbar sein muss/sollte,
Hier hast Du das "Aus" für Excel definiert.Wieso aus? Allein die Einstellung "Arbeitsmappe freigeben" lässt da die Nutzbarkeit mehrerer User zu
Und weil das so zuverlässig funktioniert, hast du das Problem, das du hast. Oder doch nicht?
Wenn ich davon ausgehe, dass eine Excel-Mappe in der Firma gelegentlich von einem von drei oder vier MA bearbeitet wird und es dabei wiederum *gelegentlich* vorkommen kann, dass mehr als ein MA auf die Mappe zugreift und der Zugriff *außerdem* direkt über den Explorer erfolgt, so dass dem zweiten zugreifenden MA mitgeteilt wird, dass die Mappe bereits geöffnet ist, könnte ich mit einer solchen Arbeitsweise leben.
Bei dir ist da aber noche eine weitere Schicht eingezogen worden, die die *direkte* Rückmeldung darüber, ob die Mappe bereits geöffnet ist, verhindert. Das ist das mMn der Todesstoß für diese Vorgehensweise.
Der Thread hier beschäftigt sich nun mit dem Umschiffen dieser Klippe. Jörg hat dir geraten, einen neuen Kurs zu berechnen und zu setzen, auch wenn das auf den ersten Blick bedeutet, einen Umweg zu fahren. Der sollte aber – zumindest in Hinsicht auf dieses Problem – mit weniger Gefahrenstellen gespickt sein.
Tschö, Auge
Und was wäre deiner Meinung nach der idealste bzw. beste Weg? Also Programm + Scriptsprache um meinen anvisierten Weg zu gehen, vllt. sogar fortzusetzen?
Mit viel Mühe würde ich mich zu einer Lösung via Access (nebst VBA, also Visal Basic for Applications) überreden lassen. Vermutlich aber würde ich lieber auf freie Software setzen und etwas Skripten.
Excel käme aber darin gewiss nicht vor. Sobald mehrere Benutzer an einer gemeinsamen Datenbasis rumfummeln ist definitiv "Datenbank" angesagt, also mindestens sowas wie MariaSQL oder MySQL. Wie gesagt, Access als Klicki-Oberfläche und gleichzeitig Skriptcontainer/Skriptinterpreter - um diejenigen, welche das teure - pardon tolle MS-Office kauften, nicht auf die Füße zu pis- entschuldige.
LibreOffice Base würde es wahrscheinlich an der Stelle von Access auch tun...
Jörg Reinholz