PDA

Vollständige Version anzeigen : Zeitgleicher Zugriff auf Datenbank


Ingo_L
06.07.2001, 13:17
Hallo zusammen,
was muß ich beachten bzw. einstellen, damit mehrere Leute gleichzeitig ein Formular einer Datenbank bearbeiten können? Geht das überhaupt?
Gruß
Ingo

wagner-laessig
06.07.2001, 14:16
hi ingo!

natürlich kannst du unter access mehrere user an einem formular arbeiten lassen. und da liegt genau das problem: du mußt nun irgendwie bewerkstelligen, daß nicht zwei oder gar mehrere user gleichzeitig am selben datensatz werkeln. ich löse das problem dadurch, daß ich jeder tabelle einen bool zufüge, in den ich beim öffnen des entsprechenden datensatzes nur den wert auf false und beim schließen des datensatzes auf true setze. wenn ich nun jedesmal beim filtern der datensätze die falsen aussortiere, dann habe ich zumindest eine gewisse sicherheit mehr in dem verfahren.

ciaou et cu


marcus

Gernot
07.07.2001, 23:04
Hallo Marcus,
das Thema interessiert mich auch, sag was ist ein "bool" und wie funktioniert das im Datensatz? Ein Beispiel wäre mal ganz interessant!

Herzliche Grüße
Gernot

Mad
08.07.2001, 08:14
Im Formular selbst (Formulareigenschaften - Daten - Datensätze sperren) kann aus folgenden Einträgen gewählt werden:

- keine Datensätze
- alle Datensätze
- bearbeiteter Datensatz

Gruß, Dietmar

wagner-laessig
11.07.2001, 07:37
hallo gernot,

ein bool ist ein boolean, in access als "ja/nein" deklariert. für mich ist und bleibt es allerdings ein boolean, denn dabei wird quasi nur ein schalter umgelegt zwischen 0 und 1. ist also das platzsparendste entscheidungskriterium zwischen zwei zuständen. damit kann ich eigentlich recht viel machen, was mit steuerung zu tun hat. solche feldtypen haben natürlich so gut wie keinen informationsgehalt für den user, sind aber in einem solchen falle einfach unerlässlich.
eigentlich ist dann die verfahrenswweise recht simpel:
jeder datensatz erhält über die tabellendefinition einen zusätzlichen bool (sieh, da ist er schon wieder :)) ), der von einem formular, sobald dieser angezeigt wird, auf true gesetzt wird. wenn ich nun, sowohl über das selbe formular, als auch über andere, erneut datensätze aus der entsprechenden tabelle heraussuche, dann frage ich im filter diesen bool auf false ab, und ich erhalte dann automatisch nur die datensätze, die derzeit nicht in bearbeitung sind. zu abschluss der gesamten operation muß ich natürlich beim verlassen des datensatzes diesen bool wieder auf false setzen, damit ich diesen datensatz auch jemals wieder finde.
ein wenig vba, ist aber recht einfach zu lösen.

hallo dietmar,

natürlich gibt es auch einigermaßen brauchbar vorgefertigte funktionen dafür in access, aber ich traue denen prinzipiell nicht so recht über den weg, denn ich möchte wissen, was wirklich dabei gemacht wird.

ciaou et cu

marcus

ziege
16.01.2002, 19:51
Hallo,

ich weiß nicht ob es üblich ist auch auf ein "altes" Thema zu antworten aber ich riskiere es trotzdem mal.

Beim stöbern bin ich auf dieses Thema gestoßen das mich evtl. auch berühren könnte. In einer DB habe ich hier und da das Problem das durch Abfragen berechnete Werte unerklärliche Größen annehmen. Ich habe schon mal den Verdacht gehabt das es mit Zugriffsproblemen zusammenhängt. Bin aber davon ausgegangen "Access macht das schon".
Beim Lesen von diesem Beitrag kommen mir da jetzt etwas Bedenken.
Vieleicht noch mal zum Verständniss.
Sollte grundsätzlich in einer DB ein Datensatz zur Sicherheit durch VBA als in Bearbeitung gekennzeichnet werden ?

Danke für jeden Hinweis

Gruß

Ziege

erwin
17.01.2002, 09:27
@mad

das Sperren von "bearbeiteter DS" in Acc. sperrt leider (idR. auch noch in A2K) nicht nur EINEN DS sondern eine komplette "Speicherseite", wodurch iA. (bei "normal grossen" DS) etliche DS gesperrt werden. Ausserdem wirkt es sich als ziemliche Performancebremse aus.

Das Sperren der gesamten Tab. (alle DS) ist bei Online-Verarbeitung sowieso völlig inpraktikabel.

@marcus

Ob dein Vorschlag, beim LESEN jedes DS diesen gleichzeitig durch einen UPDATE eines boolschen Flags im DS zu markieren besonders sinnig ist, wage ich, gelinde gesagt, zu bezweifeln. Damit sowas überhaupt sinnvoll möglich ist, muss das App.-GUI "sehr klassisch" gebaut sein (Geben Sie bitte die Auftragsnummer ein, die Sie ändern wollen...), bei einer freien Navigation über viele DS sowie integrierter Änderungsmöglichkeit, kann das performancemässig nicht gut funktionieren.

@Ingo

IdR. kommt man in Acc.Apps mit optimistischer DS-Sperrung (= keine Sperren) aus, wobei Jet erst zum Zeitpunkt des tatsächlichen Updates nochmals "nachschaut", ob der DS zwischenzeitlich von jemand "anderem" geändert wurde, was idR. und nach meinen Erfahrungen mit etlichen Apps. fast nie der Fall sein wird. Ausserdem werden einem dann von Acc. verschiedene Möglichkeiten geboten, weiter zu verfahren (probier's aus !)

so long erwin...