Neuigkeiten:

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

Mobiles Hauptmenü

Schreibkonflikt

Begonnen von formica, Oktober 29, 2014, 16:12:42

⏪ vorheriges - nächstes ⏩

formica

Hallo,
habe eine kleine DB erstellt, mit hilfe der ich in einer Tabelle per Kombifeld/er  sortieren / was eintragen kann,
die Meldung ->Schreibkonflikt bekomme ich, bei folgender Konstellation: habe nur ein Formular mit einem Unterformular, das UF bezieht sich auf eine Tabelle (Spalten-> zu Liefern(ja/nein), zu Bestellen(ja/nein),MaterialArt (Fest, Fluessig,Gas), Lagerort(Tokyo,Berlin,Frankfurt usw.) , Material(.....)), Im Formular befinden sich Kombifelder, Buttons. Szenario: mit hilfe des Kombifeldes sortiere ich nach Komponente, mit dem Button setzte ich in der Spalte zu Liefern auf JA (Hacken), dann mit hilfe des 2ten Kombifeldes Lagerort (Daten aus einer anderen Tabelle) will ich ein Lagerort eintragen in der Sp Lagerort z.B. Tokyo, danach bekomme ich die Meldung , "Schreibkonflikt Dieser Datensatz wurde seit der Bearbeitung von einem anderen Benutzer geändert. Wenn Sie den Datensatz speichern, werden den Änderungen des anderen Benutzers überschrieben?", Dann habe ich Buttons erstellt z.B. Filter zuruecksetzen, dieser sollte mir die vorher eingestellten Filter austragen, sonderbares Verhalten, er loescht mir zugleich den ersten Eintrag in der Sp Komponente,
bitte um Hilfe


Viele Grüße
Peter

Danke an MaggieMay
Danke an DF6GL

MaggieMay

Hallo Peter,

du hast sowohl das Haupt- als auch das Unterformular an dieselbe Tabelle gebunden, kannst sowohl im Unterformular die Daten editieren als auch per VBA aus dem Hauptformular heraus ändern - da sind Konflikte vorprogrammiert.
Zitatmit hilfe des Kombifeldes sortiere ich nach Komponente
Nein, du sortierst nicht, sondern filterst das Unterformular. Gleichzeitig änderst du aber damit auch den Eintrag im aktuellen Datensatz. Das kann ja so nicht gewollt sein und es geht auch viel einfacher. Anstatt das UF zu filtern kannst du es mit dem HF verknüpfen. Dazu nimmst du dann aber ein ungebundenes Kombifeld zum Filtern des HF.

Um den ausgewählten Lagerort auf alle betroffenen Datensätze zu übertragen, kannst du die Recordset-Schleife oder aber eine Aktualisierungsabfrage einsetzen. Wenn du vorher den Datensatz im HF explizit speicherst, bspw. mit Me.Dirty = False, sollte der Schreibkonflikt verschwinden.
Freundliche Grüße
MaggieMay

MaggieMay

#2
Hallo Peter, ich bin's nochmal.

Du machst einen grundsätzlichen Fehler, indem du die gebundenen Textfelder im Hauptformular wie reine Such-und Anzeigefelder behandelst.
Somit überschreibst du bei etlichen Aktionen den aktuellen Datensatz. Hast du das denn noch gar nicht bemerkt?

Zunächst einmal solltest du entscheiden, ob du das HF überhaupt an die Tabelle binden möchtest oder ob das für dich verzichtbar ist und die Textfelder lediglich zur Auswahl der Komponente und zum Einstellen des Lagerortes dienen sollen.
Wäre dann das Editieren der Datensätze im Unterformular verzichtbar, oder soll es weiterhin möglich sein, dort einzelne Änderungen vornehmen zu können?
Freundliche Grüße
MaggieMay