PDA

Vollständige Version anzeigen : Datensatz sperren


akki
10.07.2006, 13:55
Moin Moin
Hier mein Problem.
Auf die DB greifen mehrer zu.
Nun soll der bearbeitende DS gesperrt werden.
Die Optionen sind eingestellt.
Das Frm unter Eigenschaften/Daten/Datensätze sperren steht auf bearbeitenden DS.

Hab ich da was vergessen ??

Oder gibt es einen Code der den DS öffenetum daran zu arbeiten
(schlechte Lösung)

Ich habe das Forum durchsucht und keine brauchbares Ergebnis gefunden.

Vielen Danke in Voraus

Henry

WDKA-Jürgen
10.07.2006, 14:41
hallo Henry,
in einer Mehrbenutzerumgebung ist vom System her immer der gerade bearbeitete Datensatz gesperrt. Es können niemals 2 Benutzer gleichzeitig an einem Datensatz arbeiten.

mfg

Jürgen

kwakS
10.07.2006, 14:41
Hi akki,

vielleicht hilft dir folgender Code bei der Behebung deines Probs...

Private Sub Form_Load()
With Me
.NavigationButtons = True
.AllowDeletions = False
.AllowEdits = False
.AllowAdditions = True
End With
End Sub

akki
10.07.2006, 16:20
Hallo Kwaks,
Ich habe es schon mal bei einer anderen Db anders gemacht.
ich wollte den Code nach einem 1. setzen, aber da ich mich nicht auskenn kommt natürlich der Fehler.

Private Sub Form_BeforeUpdate(Cancel As Integer)
hier der CodeIf Me!LHW_entsorgungspflichtig Then
If IsNull(Me!Amt) Then
MsgBox "Bitte die Felder mit ** nicht vergessen einzugeben!", vbInformation
Cancel = False
End If
Next

' Frage stellen
Rückgabe = MsgBox("Die Daten wurden geändert. Wollen Sie die vorhandenen Daten überschreiben?", 36, "Frage")

' Antwort auswerten ' Siehe Hilfe zu "Msgbox"
If Rückgabe = 7 Then ' Nein wurde gewählt
Cancel = True ' Datensatz speichern abbrechen
SendKeys "{ESC}" ' Drücken der ESC-Taste simulieren (damit werden die Eingaben rückgängig gemacht)
Else
' nichts machen
End If

End Sub


wie kann ich beide verbinden.

Danke

Gruß
Henry

akki
10.07.2006, 16:23
Hallo Jürgen,
aber genau das ist das Problem.
Kann es eventuell mit der Aktualisierungszeit in (s) (sekunde ??) zusammenhängen.
ich habe es ersteinmal auf 1 gesetzt.
Ich denke es heißt sekunden.
geht es noch schneller

Gruß
Henry

Anne Berg
13.07.2006, 07:29
Um diesen Thread nicht so unbeantwortet stehen zu lassen...Es können niemals 2 Benutzer gleichzeitig an einem Datensatz arbeiten.Das ist so nicht ganz richtig - nur einer kann im Zweifelsfall seine Änderungen speichern, der 2. bekommt eine Warnung in der Art "... Datensatz wurde zwischenzeitlich von xx bearbeitet .. überschreiben, abbrechen, ...???"

Hier mal ein Beispiel, wie deine Sub aussehen könnte:Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me!LHW_entsorgungspflichtig Then
If IsNull(Me!Amt) Then
MsgBox "Bitte die Felder mit ** nicht vergessen einzugeben!", vbInformation
Cancel = True ' Speichern abbrechen, Eingabe erzwingen
End If
Else
' Frage stellen
If MsgBox("Die Daten wurden geändert. Wollen Sie die vorhandenen Daten überschreiben?", vbQuestion + vbYesNo, "Frage") = vbNo Then
Cancel = True ' Datensatz speichern abbrechen
DoCmd.RunCommand acCmdUndo ' Eingaben rückgängig machen
Else
' nichts machen
End If
End If
End Sub
Zumindest syntaktisch sollte das korrekt sein. ;)

PS:
Bleibe bitte mit einem Thema in einem Thread und benutze bitte auch die Code-Tags, das erleichtert den Überblick.