Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Aktualisieren einer Tabelle im "Live"-Modus

Begonnen von SKW1979, Juli 19, 2019, 17:48:48

⏪ vorheriges - nächstes ⏩

SKW1979

Hallo,

ich habe folgendes Problem. Unsere Datenbank läuft auf vier Rechnern gleichzeitig. Jetzt wollen wir eine Art "Live-Modus" für die Tabelle haben d.H. wenn ich auf meinem Rechner einen Termin lösche, soll das direkt auf den anderen Rechnen zu sehen sein. Geht das und wenn ja wie?

Danke für eure Hilfe

Beaker s.a.

@SKW1979
Das geht, wenn die DB in Backend (DB mit Tabellen auf Netzlaufwerk)
und Frontend (DB mit Abfragen/Formularen usw.) aufgeteilt wird und
jeder Client sein eigenes FE lokal gespeichert hat.
Das Formular mit den Terminen wird dabei beim Öffnen autom. aktua-
lisiert. Bei einem schon offenen Formular werden die Änderungen erst
bei einer erneuten Abfrage der Datensatzherkunft (Requery) sichtbar.
Wenn das zeitkritisch ist müsstest du das Timer-Ereignis des Formulars
bemühen; - Timerinterval > 0 setzen (Angabe in ms), und beim Timer-
Ereignis das o.a. Requery anstossen.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

SKW1979

Hallo Ekkehard,

danke für deine Antwort.

Oh je, das hört sich aber nicht grade einfach an. Ich bin da leider nicht so fit drin. Theoretisch bräuchte ich nur den Zeitintervall ändern, wenn das andere schon so eingestellt ist. Oder habe ich da etwas falsch verstanden?

danke
gruss susanne

Beaker s.a.

Hallo Susanne,
Zitat... wenn das andere schon so eingestellt ist.
Das verstehe ich nicht; - was soll da eingestellt sein?
Also, das eingestellte Zeitgeberintervall löst immer nach Ablauf der eingestellten
Zeit das Ereignis "Bei Zeitgeber" aus.
Dieses Ereignis kann man in der zugehörigen Ereignis-Prozedur (Form_Timer)
dazu nutzen asynchrone Aktionen auszuführen.
Beim Intervall musst du aufpassen. Je nach Nutzungsintensität des Formulars
kann ein zu häufiges aktualisieren des Forms schnell nervig werden. Eine Alter-
native wäre eine Schaltfläche, die dann nur bei Bedarf die Aktualisierung durch-
führt.
Der Code ist bei beiden Möglichkeiten der gleiche.
(Luftcode):
Private Sub Form_Timer()
    'zuerst müssen wir den Fall abfangen, das der User gerade einen DS
    'bearbeitet
    If Me.Dirty Then Exit Sub
    'Aktualisierung wird auf das nächste Timer-Event verschoben.

    Dim myID As Long
    'da das folgende Requery das Form auf den 1. DS navigiert, müssen wir
    'die ID des aktuellen DS zwischenspeichern um dorthin zurück zu kommen.
    myID = Me.FormFeldMitID
    'Form aktualisieren
    Me.Requery
    'zurück zum zuletzt gesehenen DS
    Me.Recordset.FindFirst "TabellenFeldMitID = " & myID   
End Sub

FormFeldMitID = Steuerelement (Textfeld)
TabellenFeldMitID = Steuerelementeinhalt von FormFeldMitID
(heissen bei Anfängern meist gleich, weil von Access so vorgegeben)

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

SKW1979

vielen vielen dank dafür...werde das nächste Woche mal testen und dann bescheid sagen, ob es klappt.

Schönes Wochenende noch..