Office: (Office 2010) Multiuserzugriff . Datensatz blockert

Helfe beim Thema Multiuserzugriff . Datensatz blockert in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo , Folgende Situation: ich habe eine Datenbank (Frontend / Backend). Zwei User öffnen zeitgleich ein Formular wo der selbe Datensatz geladen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Kai_W, 4. Februar 2020.

  1. Multiuserzugriff . Datensatz blockert


    Hallo ,

    Folgende Situation: ich habe eine Datenbank (Frontend / Backend).
    Zwei User öffnen zeitgleich ein Formular wo der selbe Datensatz geladen geladen ist.
    Jetzt dachte ich immer, wenn ein User nur das Formular auf hat, aber nichts schreibt und der Zweite beschreibt eine Zelle schreibt was in ein Textfeld rein und speichert, ist das kein Problem.
    Nur wenn beide das SELBE Textfeld beschreiben und beide abspeichern, kommt es zum Konflikt und die Datenbank gibt eine Meldung heraus, das der Inhalt durch jemand anderen verändert wurde, und fragt ob man überschreiben will.

    So dachte ich zumindest !!!!! :-)

    In oberen Beispiel ist es aber so, wenn ein User mit einem Formular einen bestimmten DS öffnet (aber nichts ändert) und ein anderer User öffnet über sein Frondend zufällig den selben DS, ändert was und will speichern, kommt die Fehlermeldung: Speichern nicht möglich, momentane Sperrung durch anderen Benutzer !

    Ist das so korrekt, dass die Meldung kommt ? ich bin immer davon ausgegangen, ein Textfeld kann auch inhaltlich verändert werden, wenn jemand anderes den DS auch geöffnet hat.

    Bin mir da aber nicht mehr so sicher, ob ich da richtig liege

    Danke für eure Infos dazu

    Kai

    :)
     
  2. Hallo Kai,

    das ist von einigen Einstellungen in Access und von der Art, wie dein Recordset geöffnet wird, abhängig. Hinzu kommen eventuell Eingriffe per Makro oder VBA.

    Prinzipiell ist deine erste Annahme schon richtig, wenn pessimistisches Recordlocking eingestellt ist.

    Siehe auch:
    https://books.google.de/books?id=95p...ocking&f=false

    Ulrich
     
    knobbi38, 6. Februar 2020
    #2
  3. Hallo Ulrich,

    wenn ich mir das so durchlese, bin ich mir garnicht sicher, was ich denn nun habe. Ist das nicht pessimistisches Recordlocking ????

    Code:
    Kai
     
  4. Multiuserzugriff . Datensatz blockert

    knobbi38, 6. Februar 2020
    #4
  5. Als Ergebnis bekomme ich ein WAHR:


    True =
    Standardwert. Eine pessimistische Sperre wird verwendet. Die Seite mit dem aktuell bearbeiteten Datensatz wird gesperrt, sobald Sie die Edit-Methode aufrufen.

    Das wundert mich jetzt, Hatte Knbbi38 nicht geschrieben, bei pessimistische würde der Zugriff trotzdem funktionieren ?

    Kai
     
  6. Nein,

    Du hast "pessimistisch"! Probier mal "optimistisch"!
    Also LockEdits auf FALSE setzen...
     
    fraeser, 6. Februar 2020
    #6
  7. Hallo ,

    achso ich glaube , ich hatte das falsch verstanden.
    ich hatte vorhin nur in die Funktion eine msgbox eingebaut

    msgbox rst.LockEdits

    Da habe ich dann das True erhalten.

    Meinst du so ...

    Code:
    ???

    Kai
     
  8. Multiuserzugriff . Datensatz blockert

    Hallo Kai,

    ich habe mich vielleicht etwas unglücklich ausgedrückt. Es müßte besser heißen:
    "Prinzipiell ist deine erste Annahme schon richtig, auch wenn pessimistisches Recordlocking eingestellt ist."

    Grob gesagt:
    bei pessimistischen Locking wird sofort der DS bei einer Änderung (Edit) für alle anderen gesperrt, bei optimistischen Locking wird erst dann ein Fehler gemeldet (Update), wenn der DS zwischenzeitlich von anderer Stelle verändert worden ist.

    Hier mal eine Seite mit ein bißchen VBA Code zum testen:
    http://www.thomas-peters.de/codedate...&Programm_ID=1

    Und bitte beachten:
    in den Access Optionen->Clienteinstellungen->Erweitert kann das Locking Verhalten auch beeinflußt werden, z.B. Locking auf Seiten- oder Datensatzebene.

    Ulrich
     
    knobbi38, 6. Februar 2020
    #8
  9. knobbi38, 6. Februar 2020
    #9
  10. Es gilt aber auch zu beachten, dass Locking auf Datensatzebene bei einer Verknüpfung nicht möglich ist.

    Ich habs aber auch nur gelesen und nicht überprüft.
    Pessimistik Locking könnte also auch Datensätze sperren, die nicht bearbeitet werden, weil sie sich auf der selben Page befinden.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 6. Februar 2020
    #11
  11. Hallo zusammen,

    ich noch mal, komme bei dem Thema irgend wie nicht weiter.

    Habe mit einem Kollege zusammen das mal getestet. Sind beide von verschiedenen Frontends auf den selben DS gegangen. hatten beiden den DS auf, ich habe was reingeschrieben, dann denn DS verlassen, Kein Problem.
    Daten wurden gespeichert:

    Code:
    Hatte nun auch ein paar Mal das Erlebnis, bin auf die Datenbank gegangen, bin definitiv Alleine, Kein User ist eingeloggt, ich sehe im Taskmanager keine "hängende Session" , schreiben was in einen DS , will den DS mit obigen code verlassen und bekomme die Meldung:

    "Aktualisierung nicht möglich; momentane Sperrung durch eine andere Sitzung auf diesem Rechner!"

    Nanu, wie kann das sein, ich bin der Einzige , es ist keine weitere Session geöffnet und trotzdem die Meldung !!!!!!!!!!!

    Nun habe ich noch festgestellt, tritt dieser Fehler auf, schließe die Datenbank, gehe direkt in das Backend auf den betroffenen DS und schreibe nur ein Zeichen in den DS, verlasse das Backend wieder , starte wieder das Frontend, öffne den DS , kann ich wieder schreiben und speichern ohne das der Fehler kommt.

    Hatte das auch schon bei anderen DS, kann aber keine Logik erkennen, es sind immer wieder unterschiedliche DS und mal kann ich den selben DS ein paar mal öffnen und beschreiben und irgend wann tritt der Fehler wieder auf !!!!!!!!!!!!!!!!!!!!!!!!

    Hat da jemand eine Idee ??? Durch was könnte den der DS noch blockiert werden, wenn schon keine User drauf ist und warum scheint sich die Blockierung zu lösen, wenn man der DS direkt in der Datenbank in der Tabelle beschreibt

    Danke Euch mal

    Kai
     
  12. Multiuserzugriff . Datensatz blockert

    Hallo Kai,

    ich weiß jetzt nicht, was genau bei dir schief geht, aber deinen Code würde ich etwas anders formulieren:
    Code:
    Jetzt mal Refresh() und ohne Fehlerbehandlung (nur zum testen!).

    Gruß Ulrich
     
    knobbi38, 11. Februar 2020
    #13
  13. Hallo Ulrich,

    Danke. Es kommt die selbe Fehlermeldung wieder, nur dass das Fenster nun anders aussieht:
    "Laufzeitfehler 3188, Aktualisierung nicht möglich; momentane Sperrung durch eine andere Sitzung auf diesem Rechner!"

    Mir ist nun aber aufgefallen, der Fehler (wenn er auftritt) betrifft nur ein Kommentarfeld auf der Maske. Beschreibe ich andere Felder, kein Problem beim verlassen, sobald aber das Kommentarfeld dabei ist , geht nix.

    Das Kommentarfeld ist ein MEMO Datentyp. Habe mal den Text selber angeschaut, da ist eigentlich ganz normaler Text drin, also keine Sonderzeichen und Müll und momentan sind es knapp 3500 Zeichen, also sollte kein Problem sein.
    Glaube auch nicht, dass es am Inhalt liegt. Aber warum gerade dieses eine Feld ???

    Kai
     
  14. Hallo Kai,

    wird das Memofeld noch irgendwo anders verwendet, z.B. in einem Ausdruck, in einem UF?
    Sind Feldname und Steuerelementname, an welches das Memofeld gebunden ist, auch unterschiedlich benannt?
    Werden normale DAO.Recordsets oder ADO.Recordsets für das Formular verwendet?

    Gruß Ulrich
     
    knobbi38, 11. Februar 2020
    #15
Thema:

Multiuserzugriff . Datensatz blockert

Die Seite wird geladen...
  1. Multiuserzugriff . Datensatz blockert - Similar Threads - Multiuserzugriff Datensatz blockert

  2. Filtern von Datensätzen

    in Microsoft Excel Hilfe
    Filtern von Datensätzen: Guten Abend erst einmal, ich bin neu hier im Forum und wollte gerne Euer Schwarmwissen um Hilfe bitten. Meine Excelversion ist Version 16.87 (24071426) Ich habe folgendes Problem. Ich habe eine...
  3. Access Neuer Datensatz im Formular

    in Microsoft Access Hilfe
    Access Neuer Datensatz im Formular: Hallo - ich bin neu hier und Anfängerin im VBA Programmieren. Ich habe eine Frage zu VBA: In meinem Formular kann ich Daten eingeben, wenn ich das Formular wieder öffne, wird der letzte...
  4. Datensatz aus Ufo2 auch in Ufo1 anzeigen

    in Microsoft Access Hilfe
    Datensatz aus Ufo2 auch in Ufo1 anzeigen: Liebe Forenmitglieder. Ich benötige wieder Eure Hilfe. Ich habe ein Formular mit Stammdaten und zwei eingebetteten Unterformulare mit ergänzenden Daten. Wenn im Ufo1 ein Datensatz angelegt wird,...
  5. Serienbrief aus mehreren Datensätze

    in Microsoft Excel Hilfe
    Serienbrief aus mehreren Datensätze: Hallo ich benötige Hilfe bei der Erstellung eines Serienbriefes aus eine Excel Tabelle. Hintergrund ist, ich habe ein Excel Tabelle aus Teams Schichten exportiert. Hier wird aus jedem Eintrag ein...
  6. Makro für variable Anzahl von Datensätzen

    in Microsoft Excel Hilfe
    Makro für variable Anzahl von Datensätzen: Hallo zusammen, ich habe wieder einmal ein kleines Excel-Problem, bei dem Ihr mir sicherlich helfen könnt. Ich habe eine Excel-Liste, das ist ein Export aus einem anderen Programm (siehe...
  7. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  8. Currentdb.Execute delete löscht alle Datensätze trotz Where Bedingung

    in Microsoft Access Hilfe
    Currentdb.Execute delete löscht alle Datensätze trotz Where Bedingung: Hallo Zusammen, ich hoffe, dass mir jemand weiter helfen kann. Ich habe folgendes Problem: Ich habe eine Tabelle (RegieImp), in welche ich aus Excel Daten importiere. Es gibt eine eindeutige ID...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden