Hallo an Alle,
danke für die Beiträge. Haben mir Gedanken gemacht und die Lösung von Hobbycoder finde ich passend für mich. Meine Idee ist jetzt eine zusätzliche Positionstabelle zu erstellen, die mit den aktl. Positionen gefüllt wird. Diese bekommt auch ein zusätzliches "Kennung". Das kann eine automatisch generierte Zahl sein, oder z.B. auch eine Userkennung. Wenn der Auftrag fertig ist, wird der Inhalt dieser Tabelle, selectiert nach der Kennung, in die Positionstabelle kopiert. Danach die alle Positionen mit der entsprechenden Kennung in dieser Tabelle gelöscht. So, dass jeder Anwender diese Tabelle mit der eigenen Kennung benutzen wird. Es muß nur ausgeschlossen sein, dass eine Anwender an mehreren Arbeitsplätzen gleichzeitig arbeiten kann.
Danke und Gruß,
Luckner
Warum willst du das in verschiedene Tabellen halten?
Lass die Positionen doch gleich in endgültigen Tabelle, und mach dir ein Feld hinzu welches dann diese Kennung enthält, von der du spricht. Wofür brauchst du die überhaupt? Vielleicht damit die Entwürfe nur an dem einen Arbeitsplatz angezeigt werden? Dann speichere dir halt die Benutzerkennung in einem Feld ab.
Wird dann der Auftrag/Rechnung festgeschrieben, brauchst du nur die Nr austauschen und die Kennzeichen für Entwurf löschen.
Was das verhindern der Bearbeitung durch einen anderen Benutzer angeht, so mache ich das so, dass ich mir im Kopfsatz des Vorgangs eine Feld "InBearbeitung" anleget. In diesem Feld steht entweder gar nichts, dann kann jeder der Vorgang öffnen, oder der Benutzer, der ihn gerade in Bearbeitung hat. In dem Fall wird einem anderen Benutzer dann angezeigt, dass Vorgang gerade bearbeitet wird und vor allen Dingen von wem (ich hasse das, wenn Programme mir melden, dass irgendwas in Benutzung ist und ich suchen muss von wem).
beim Öffnen des Vorgang den Benutzer eintragen und hinterher wieder löschen.
Beim Beenden werden für den Fall der Fälle alle Datensätze des Benutzers freigegeben und bei Starten auch (ein Programm kann ja auch mal abstürzen, ein Rechner auch).
Man könnte das auch in eine separate Tabelle auslagern, die dann Vorgangsnummer und Benutzer vorhält. Dann muss man sich halt um die Konsistenz kümmern.