Access Formular automatisch aktualisieren

Hallo,

ich möchte mit Access eine Datenbank erstellen auf die mehrere User zugleich zugreifen und Datensätze anlegen und ändern.

Der Zugriff soll immer per Formular erfolgen.
Damit User A während der Arbeit auch Änderungen an den Daten mit bekommt, die ein oder diverse User vornehmen, muss das Formular ja aktualisiert werden.
Ich möchte gerne das die Aktualisierung erfolgt, wenn der User einen Datensatz abspeichert oder sich beim Durchblättern der Datensätze vor bzw. zurück bewegt. Ich denke mal, dass dies mit VBA realisierbar wäre (und da happert es sehr stark bei mir).
Gerne auch zusätzlich automatisch nach einem gewissen Zeitinterval, wenn ein User eine weile nichts im Formular gemacht hat.

Für jeden Hinweis oder ein paar fertige Zeilen Quellcode, wie ich dies bewerkstelligen kann, wäre ich dankbar.

Ich sage für eure Antworten schon mal Danke.

Ricardo

Hallo,

ich möchte mit Access

gebe hier bitte immer die Version mit an!

Der Zugriff soll immer per Formular erfolgen.
Damit User A während der Arbeit auch Änderungen an den Daten
mit bekommt, die ein oder diverse User vornehmen, muss das
Formular ja aktualisiert werden.

jein

Ich möchte gerne das die Aktualisierung erfolgt, wenn der User
einen Datensatz abspeichert oder sich beim Durchblättern der
Datensätze vor bzw. zurück bewegt.

das passiert automatisch in Access!

Ich denke mal, dass dies mit VBA realisierbar wäre (und da happert es sehr stark bei mir).

also lernen, Access ohne VBA ist wie Autofahren ohne Räder :smile:

Gerne auch zusätzlich automatisch nach einem gewissen
Zeitinterval, wenn ein User eine weile nichts im Formular
gemacht hat.

schau dir mal die Grundeinstellungen deines Access genau an, dort kannst du das Aktualisierungsintervall einstellen.

Da der gerade genutzte Datensatz für alle anderen Mitarbeiter gesperrt ist, wäre es sinnvoll den Mitarbeiter aus dem Formular zu werfen, der es zu lange offen hat.

Für jeden Hinweis oder ein paar fertige Zeilen Quellcode, wie
ich dies bewerkstelligen kann, wäre ich dankbar.

wie gesagt: nicht nötig

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo,

Danke für die schnelle Antwort.
Also ich arbeite hier mit Access 2007. Der Zugriff erfolgt nachher auch mit älteren Versionen.

Bisher habe ich in Access nur mit SQL-Abfragen arbeiten müssen und brauchte VBA nicht.

Die Grundeinstellungen von Access habe ich durch gesehen, aber von Aktuallisierungsintervallen für Formulare oder anderen Abfragen habe ich nicht gefunden.

Ricardo

Hallo,

Die Grundeinstellungen von Access habe ich durch gesehen, aber
von Aktuallisierungsintervallen für Formulare oder anderen
Abfragen habe ich nicht gefunden.

Keine Ahnung was du wo gesucht hast, bei Access 2007 zu finden hier:

  • Office-Button (links oben der runde Kreis)
  • Access-Optionen (unten rechts)
  • Erweitert (auf der linke Seite)
  • auf der rechten Seite ganz nach unten scrollen
    -> lesen

da findest du:

  • OLE/DDE Timeout
  • Anzeigeaktualisierungsintervall
  • Anzahl der Datenaktualisierungsversuche
  • ODBC-Aktualisierungsintervall
  • Datenaktualisierungsintervall

Bedenke: länger ist manchmal besser :smile:

Grüße aus Rostock
Wolfgang
(Netwolf)

Danke für den korrekten Hinweis.
Die Einstellungen habe ich schon gesehen, aber total falsch interpretiert.
Ich dachte die Einstellungen beziehen sich auf den Hacken für Datensatzspeerung darüber.

Nochmals Danke

Grüße aus Wismar
Ricardo

Problem gelöst
Nach langen suchen im Internet und Probieren habe ich eine Lösung für mein Vorhaben gefunden und möchte für ander die das gleiche möchten mal meine gefundene Lösung zeigen:


Private Sub vorheriger_Click()
On Error GoTo Err_vorheriger_Click
On Error GoTo myError
Dim lngStore As Long
lngStore = Me!ID
'Bildschirmflackern reduzieren
Me.Painting = False
Me.Requery
Me.Recordset.FindFirst "Id = " & lngStore
myExit:
Me.Painting = True
lngStore = Me!ID
GoTo Weiter
myError:
Select Case Err.Number
Case 3159
Resume myExit
Case Else
MsgBox "Exception Nr. " & Err.Number & " " & Err.Description
Resume myExit
End Select
Weiter:
DoCmd.GoToRecord , , acPrevious
Exit_vorheriger_Click:
Exit Sub
Err_vorheriger_Click:
MsgBox Err.Description
Resume Exit_vorheriger_Click
End Sub

Grüße aus Wismar
Ricardo

Hallo Ricardo,

es reicht vollkommen:

Private Sub vorheriger_Click()
DoCmd.GoToRecord , , acPrevious
End Sub

Wie schon gesagt, reicht das einfache Bewegen in der Datenbank um die Ansicht zu aktualisieren. Ein Requery ist überflüssig!

Keine Ahnung was du mit Bildschirmflackern meinst, es hat aber eigentlich nichts damit zu tun.
Der Bildschirm wird halt einmal aktualisiert, wenn du blätterst, das ist normal und so gewollt.

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo Wolfgang,

In der Tabelle mag das so sein, in einer temporären Abfragetabelle reicht das einfache Bewegen aber nicht.
Änderungen die ich an Datensätzen in der Abfragetabelle vornehme werden auch in der richtigen für die Abfrage zugrundeliegenden Tabelle vorgenohmen. Es erfogt in der Abfragetabelle aber kein abgleich ob es andere Änderungen an der für die Abfrage zugrundeliegenden Tabelle gibt. Daher ein Requery der Abfragetabelle.

Als Bildschirmflackern wird das Kurzfristige leeren und neu füllen der Felder im Formular empfunden und soll mit"Me.Painting = False" untedrückt werden.

Grüße aus Wismar
Ricardo