Aktualisierte Daten anzeigen

Hallo,

meine Datenbank läuft im Netz und es gibt oft das Problem, das veränderte Daten nicht an allen Arbeitsplätzen gleich angezeigt werden. Das Frontend der Datenbank ist in Tabs sortiert.

  1. Für welches Event der Formulareigenschaften muss ich den Befehl Me.Requery vergeben, damit bei Anklicken des Tabs dieses Formulars aktuelle Daten angezeigt werden.

  2. Kann ich von einem Arbeitsplatz (Frontend) den Befehl an alle anderen Arbeitsplätze (Frontends) erteilen, ihre Ansicht zu aktualisieren? So könnte ich etwa im Button „Fertig“ unter „Neuer Kunde“ die Anweisung geben, dass alle angezeigten Kundenlisten aktualisiert werden.

Danke wie immer für Eure Hilfe!

Benjamin

Hallo,

  1. Für welches Event der Formulareigenschaften muss ich den
    Befehl Me.Requery vergeben, damit bei Anklicken des Tabs
    dieses Formulars aktuelle Daten angezeigt werden.

Man könnte das Ereignis „Bei Zeitgeber“ des Forms dazu vergewaltigen.
Man könnte auch das Aktualisierungsintervall (Datenbank-Optionen) verkleinern.

  1. Kann ich von einem Arbeitsplatz (Frontend) den Befehl an
    alle anderen Arbeitsplätze (Frontends) erteilen, ihre Ansicht
    zu aktualisieren? So könnte ich etwa im Button „Fertig“ unter
    „Neuer Kunde“ die Anweisung geben, dass alle angezeigten
    Kundenlisten aktualisiert werden.

Nein.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Benjamin,

meine Datenbank läuft im Netz

welche denn?

und es gibt oft das Problem, das
veränderte Daten nicht an allen Arbeitsplätzen gleich
angezeigt werden. Das Frontend der Datenbank ist in Tabs
sortiert.

das ist nicht das Entscheidende, die Fragen sind:

  • wie sind die Front- Backends denn verbunden?
  • welche Betriebssysteme
  • welcher Server/Betriebssystem
  • welche Art der Netzwerkverbindung?
  1. Für welches Event der Formulareigenschaften muss ich den
    Befehl Me.Requery vergeben, damit bei Anklicken des Tabs
    dieses Formulars aktuelle Daten angezeigt werden.

alsoooo ich würde mal behaupten -> beim Klicken

  1. Kann ich von einem Arbeitsplatz (Frontend) den Befehl an
    alle anderen Arbeitsplätze (Frontends) erteilen, ihre Ansicht
    zu aktualisieren?

imho nein, sehe da auch keinen Sinn drin!?

So könnte ich etwa im Button „Fertig“ unter
„Neuer Kunde“ die Anweisung geben, dass alle angezeigten
Kundenlisten aktualisiert werden.

Falls du Access nutzt: das macht das Programm automatisch!
Siehe Grundeinstellungen…

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

ich hab mich vorher doch etwas schwammig ausgedrückt, entschuldigung.

Ich habe eine Access 2007 Datenbank, die in Frontend und Backend aufgeteilt im Netz läuft.

Bei dem Netzwerk handelt es sich um ein 100 Mbit LAN. Auf dem Server läuft Windows Server 2008 und auf den vier Workstations läuft Windows XP Pro SP3. Die Frontends und das Backend sind durch Tabellenverknüpfungen verbunden.

Ich hoffe, ich hab die Datenbank und das Netzwerkumfeld damit hinreichend beschrieben.

Nun also zur Frage:

Ich hätte gerne, dass die Daten auf den Workstations vernünftig aktualisiert werden. Im Moment ist es so, dass ich für aktuelle Daten oft das Button „Alle Aktualisieren“ klicken muss, um Formulare aktuell zu bekommen. Lieber wäre mir aber, dass dieses Aktualisieren ohne Klick vonstatten gehen würde. Da die relevanten Formulare als Tabs immer offen bleiben ist das Ereignis „Beim Öffnen“ wohl eher nicht geeignet. Ich hab auch „Beim Anzeigen“ versuchet, aber das war auch nicht das Richtige. Von df6gl kam der Gedanke, einen Requery-Befehl in Zeitintervallen durchzuführen, aber da er gesagt hat, man könne das Ereignis Zeitgeber zu diesem Zweck „vergewaltigen“ scheint dies auch nicht wirklich der elegante Weg zu sein.
Ich hätte es ideal gefunden, wenn ich einen Aktualisierungsbefehl für alle Frontends in eine Prozedur einbauen könnte, die hinter dem „Fertig“ Button eines Aktualisierungseintrags steht. Das macht Access im Netzwerk leider nicht selber, denn sonst hätte ich das ganze Problem nicht und müsste niemandem damit auf die Nerven gehen. Stattdessen wird im Frontend, welches zur Aktualisierung verwendet wurde, alles schön aktualisiert, während die anderen Frontends bis zum Klick auf „Alle Aktualisieren“ auf dem alten Stand bleiben. Der Sinn des Befehls „Remote-Aktualisierung“ wäre also gewesen, dass die Aktualisierung aller Frontends genau zum richtigen Zeitpunkt, nämlich wenn eine Aktualisierung passiert ist, erfolgt.

Ich hoffe, ich habe nun auch mein Problem hinreichend dargestellt und freue mich auf Euer Feedback.

Benjamin

Hallo Benjamin,

Ich hätte gerne, dass die Daten auf den Workstations
vernünftig aktualisiert werden.

das passiert automatisch gem. den Grundeinstellungen des Access das vom Frontend verwendet wird.

probiere mal diese Einstellungen:

In A2k7 klicken auf:

  • runder Office-Button oben links
  • Taste [Access Optionen]
  • Erweitert (linke Auswahl)
  • Erweitert (in der Auflistung)
  • OLE/DDE Timeout = 60
  • Anzeigeaktualisierungsintervall = 30
  • Anzahl der D… = 10
  • ODBC-Aktualisierungsintervall = 500
  • Datenaktualisierungsintervall = 150

WICHTIG: diese Einstellungen sind bei jedem Frontend vorzunehmen, wenn du diese Einstellungen nicht per VBA setzt!!

Im Moment ist es so, dass ich
für aktuelle Daten oft das Button „Alle Aktualisieren“ klicken
muss, um Formulare aktuell zu bekommen. Lieber wäre mir aber,
dass dieses Aktualisieren ohne Klick vonstatten gehen würde.

tut es ja, siehe oben

Da die relevanten Formulare als Tabs immer offen bleiben ist
das Ereignis „Beim Öffnen“ wohl eher nicht geeignet. Ich hab
auch „Beim Anzeigen“ versuchet, aber das war auch nicht das
Richtige.

das sehe ich auch so, da wäre -> beim Klicken (auf einen TAB) besser.

Von df6gl kam der Gedanke, einen Requery-Befehl in
Zeitintervallen durchzuführen, aber da er gesagt hat, man
könne das Ereignis Zeitgeber zu diesem Zweck „vergewaltigen“
scheint dies auch nicht wirklich der elegante Weg zu sein.

das kann schlimme Folgen haben, wenn jemand gerade was eingibt!

Ich hätte es ideal gefunden, wenn ich einen
Aktualisierungsbefehl für alle Frontends in eine Prozedur
einbauen könnte, die hinter dem „Fertig“ Button eines
Aktualisierungseintrags steht.

das kannst du vergessen, das funktioniert nicht! und hat ggf. die gleichen Auswirkungen wie der Timer.

Das macht Access im Netzwerk
leider nicht selber, denn sonst hätte ich das ganze Problem
nicht und müsste niemandem damit auf die Nerven gehen.

doch macht es, siehe oben

Stattdessen wird im Frontend, welches zur Aktualisierung
verwendet wurde, alles schön aktualisiert, während die anderen
Frontends bis zum Klick auf „Alle Aktualisieren“ auf dem alten
Stand bleiben.

da stellt sich die Frage: warum bleibt das Formular geöffnet?

Der Sinn des Befehls „Remote-Aktualisierung“
wäre also gewesen, dass die Aktualisierung aller Frontends
genau zum richtigen Zeitpunkt, nämlich wenn eine
Aktualisierung passiert ist, erfolgt.

und alle, die gerade was ändern an den Daten, fliegen raus aus der Maske und dürfen im günstigsten Fall von vorne anfangen :frowning:

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

Es ging um Aktualisierung von Acces-Daten im Netzwerk.

Die Veränderung der Grundeinstellungen entspr dem Voschlag von Netwolf hat im Sinne eines Refresh-Befehls geholfen, aber wenn ganze Datensätze zugefügt oder entfernt werden hilft im Netzwerk nur die Aktualisierung als Requery. Ich habe entsprechende Buttons zugefügt und so geht das Ganze gut, auch wenn ich es optimal gefunden hätte, wenn diese Aktualisierung zum „richtigen“ Zeitpunkt (also wenn Datensätze zugefügt oder entfernt wurden) ohne Click-Event durchgeführt hätte werden können.

Allen wie immer Dank fü die Hilfe!

Benjamin