Am 28.11.2017 um 23:16 schrieb Jörg Schmidt: >> From: Jörg Schmidt [mailto:[email protected]] >> Sent: Tuesday, November 28, 2017 10:41 PM > >> > U. U. kannst du deine Zugriffe optimieren. dazu musst du >> wissen, dass >> > für *jeden* Zugriff die betreffende Datei geöffnet, der Wert >> > ausgelesen, >> > und die Datei wieder geschlossen wird. >> >> Nein, das geschieht bei file-Verknüpfungen ja gerade nicht. >> (es geschieht hingegen bei DDE-Verknüpfungen) > > Sorry, vielleicht ist das so, ohne Erklärung nicht zu verstehen. Der > Hintergrund ist das bei file-Verknüpfungen Kopien der verknüpften Tabellen in > der Datei in der verknüpft wird angelegt werden und nur diese Tabellen dann > immer komplett hinsichtlich der Ursprungsdatei aktualisiert werden und nicht > jede einzelne Verknüpfung die auf diese Tabellen angelegt ist. > > Man kann das auch selbst überprüfen: > > -lege eine neue Datei an und schreibe in A1 und A2 der Tabelle 1 zwei > verschiedene Inhaltem, z.B. die Zahlen 1 und 2 > -speichere die Datei als Datei mit Namen quelle.ods > -lege eine zweite Datei an und lege dort in Tabelle 1 Zelle A1 eine > file-Verknüpfung zu Tabelle1.A1 in der Datei quelle.ods an > -speichere die zweite Datei unter Namen ziel.ods > > -schliesse nun beide Dateien > > -öffne jetzt die Datei ziel.ods nochmals und bejahe das Aktualisieren von > Verknüpfungen > -lösche nun die Datei quelle.ods > -jetzt lege, in der weiterhin geöffneten, Datei ziel.ods in Tabelle1.A2 eine > file-Verknüpfung zu Tabelle1.A2 in Datei quelle.ods an _indem Du die nötige > Formel *manuell* in die Zelle schreibst_ > > Obwohl quelle.ods ja gelöscht wurde, siehst Du nun trotzdem in Zelle A2 der > Datei ziel.ods den richtigen Wert, weil dieser im Hintergrund längst in der > Datei ziel.ods vorhanden war. > > Es muss also *bei file-Verknüpfungen* nicht bei jedem einzelnen > Verknüpfungswert die zugehörige Quelldatei neu gelesen werden.
Hmm; da scheint tatsächlich irgend was zwischengepuffert zu werden. Ob das allerdings auch beim primären Öffnen und Aktualisieren einer Datei so der Fall ist, kann ich allerdings nicht sagen (ist jedoch zu vermuten). früher war das jedenfalls definitiv so wie von mir beschreiben. Dennoch scheint mir das nicht ganz koscher zu sein, und definitiv ist die Datei offen. Versuch mal folgendes Szenario: - Datei 'Quelle.ods' und 'Ziel.ods' (für jeden Versuch!) neu anlegen. - Quelle öffnen, 3 Werte eingeben und Datei speichern (nicht schließen) - Ziel öffnen, auf /einen/ Wert in Quelle verweisen, und beide Dateien schließen. - Ziel öffnen, und Aktualisieren bestätigen - Quelle umbenennen - In Ziel auf weitere Quell-Zelle verweisen (funktioniert) - In Ziel *Summe* bilden über einen Bereich in der Quelle Bei letztem Schritt erhielt ich bei vier Versuchen einmal '#REF', einmal den korrekten Wert (Zufall?), und zweimal völlig aus der Luft gegriffene Werte (z. B. einmal '1315,74' statt den eigentlich korrekten '14'). Übrigens hatte ich meine drei Werte jedes mal in A1:A3 geschrieben (und der Einfachheit halber auch immer die drei gleichen Werte benutzt), und das korrekte Ergebnis kam bei der Summe über A1:A2, das #REF bei A1:A3, und die beiden fehlerhaften einmal bei A1:A5 also inklusive 2 leeren Zellen), und einmal sogar ebenfalls bei A1:A3; obwohl ich in diesem Fall sogar *gleichzeitig* in einer anderen Zelle auf A3 direkt problemlos verweisen konnte. Das Fehlerbild ist zwar eindeutig reproduzierbar, das Ergebnis selbst scheint jedoch völlig unvorhersehbar zu sein. Daher glaube ich da eher an einen Zugriff auf eigentlich schon freigegebenen Speicherplatz aka Bug als an eine reguläre im Speicher gehaltene Speicherkopie der echten Datei. Dennoch scheint dadurch die Aussage, jeder Zugriff auf eine externe Datei würde separat erfolgen, wiederlegt zu sein. Nachtrag: Je länger ich darüber nachdenke, desto besser kann ich mir auch ein Szenario vorstellen, welches auch die vom OP berichteten Probleme erklären könnte: Irgend wann im Lauf der Zeit wurde das Zugriffsverfahren geändert von Einzelzugriffen auf eine gepufferte Datei, aber dabei ein Bug ein gebaut, durch den die Datei im Speicher zu früh (nämlich bevor wirklich alle Zugriffe erfolgten) freigegeben wird. So etwas sollte eigentlich in modernen Betriebssystemen nicht mehr vor kommen dürfen, scheint mir aber abgesehen davon eine mögliche(!) plausible Erklärung zu sein. Wolfgang -- --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
