Is gelijktijdig wijzigen record te voorkomen? (veroorzaakt beschadiging!)

Status
Niet open voor verdere reacties.

Anne-Marie

Gebruiker
Lid geworden
8 sep 2000
Berichten
299
In een database die we al heel lang gebruiken komt het af en toe voor dat een record beschadigd raakt. Deze week kwam ik er bij toeval achter hoe dit wordt veroorzaakt. Een bestaand record moest m.b.v. formulier aangevuld worden en werd gelijktijdig door twee gebruikers gewijzigd (via een netwerk zonder dat men het van elkaar wist). Of het verschil maakt weet ik niet maar men zat ook nog in hetzelfde veld.
M.b.v. comprimeren en herstellen werd de database weer toegankelijk maar het betreffende record was verloren (ieder veld stond #fout#). Na het verwijderen van dit record werkte alles weer naar behoren.

Vandaag hoorde ik toevallig van iemand buiten mijn bedrijf dat dit een bekend ACCESS probleem was. Ook daar veroorzaakte het gelijktijdig wijzigen een beschadigde database.
Ik heb het zelf getest op het netwerk en inderdaad lukte het mij een bestaand record op deze manier om zeep te helpen. Gelijktijdig wijzigen van verschillende velden in hetzelfde record gaf geen probleem, maar hetzelfde veld gelijktijdig wijzigen was bingo. Kreeg nog wel netjes de bekende melding dat een andere gebruiker op dat moment gegevens had gewijzigd en of ik die wilde overschrijven maar ook daarna was het record kaduuk.

Is dit op een of andere manier te voorkomen(bv door op record niveau 1 wijziging tegelijk toe te staan)? of is dit inderdaad een bekend (maar zeer vervelend) probleem van ACCESS. Alvast bedankt
 
Kijken wat er mogelijk is met locks.

Ik heb zelf nooit met Access gewerkt dus zou je er niets over kunnen vertellen. Ik weet alleen dat het bij andere databases wel mogelijk is om een tabel/rij/veld te locken.
 
Pessimistisch blokkeren

Standaard gebruikt access optimistisch locken, dat wil zeggen dat records pas geblokkeerd worden als er iemand iets heeft gewijzigd. Andere gebruikers kunnen het record nog wel bekijken, maar als ze er iets in gaan veranderen, dan kunnen ze hun wijzigingen niet meer opslaan. Normaal krijg je hier een melding van en gaan je wijzigingen verloren.
Als dit niet goed werkt, dan is je database wellicht beschadigd, probeer 'm eens te comprimeren, of het ligt aan een krakkemikkig netwerk, netwerkkaarten zijn een bekende zwakke plek, ook matige inrichting doet geen goed. Misschien overbodige opmerking, maar splitsing van je database in een frontend en een backend is aan te raden. Je kunt ook de structuur van je gegevens nog eens kritisch bekijken, of alle sleutels nog wel kloppen of wellicht beter kunnen, misschien kunnen grote tabellen verder uitgenormaliseerd worden, helpt allemaal.
Een andere mogelijkheid is pessimistisch locken. Je kunt dit bij de eigenschappen van elk formulier instellen, recordvergrendeling oftewel recordlocks. Stel deze in op huidige record (2), en een record wordt al geblokkeerd voor wijzigingen als de eerste gebruiker deze opent voor wjzigingen. Let wel dat er altijd een hele pagina gelocked wordt, dat kunnen meer records dan alleen het ene record waar het om gaat.
 
Laatst bewerkt:
Ik ga voor het pessimistisch blokkeren

Ik ga proberen het pessimistisch blokkeren in te stellen. Het wijzigen gebeurd in een getoond enkelvoudig formulier dus zou dat de oplossing kunnen zijn.
De opmerking over het netwerk snijdt ook hout omdat we de laatste maanden inderdaad problemen hebben met een traag netwerk. Ik had zelf al een vermoeden dat door deze traagheid de beschadiging mede wordt veroorzaakt.
De front- en backend optie heb ik ook al geprobeerd maar kan alleen als de database altijd op dezelfde plek blijft staan op het netwerk. De database wordt per project gebruikt en vaak ook buiten het netwerk waardoor ik van splitsing ben afgestapt afgezien nog van het feit dat de database erg traag werd (maar ja dat netwerk).
Bedankt voor de tips (en nog nieuwe zijn altijd welkom) want ik heb op het forum al gezien dat er wel meer mensen zijn die ineens met een recordbeschadiging geconfronteerd worden. De mogelijke oorzaak (en hoe dit te voorkomen) wordt echter nooit besproken.
 
Pessimistisch blokkeren werkt inderdaad

Vanmiddag op record niveau het blokkeren ingesteld in het (enkelvoudig) formulier en uitvoerig getest op het netwerk. Verliep zonder problemen en beschadigingen. Bedankt voor de gouden tip. Ook gaan we aan het netwerk werken want ik denk dat dat vooral de boosdoener is. Nogmaals dank.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan