[Access 2000] Locking probleem op lokale tabel?

Pagina: 1
Acties:

  • BM
  • Registratie: September 2001
  • Laatst online: 17:29

BM

Admin Softe Goederen
Topicstarter
Goeiemorgen allen,

We zijn hier met 2 man langzaamaan gek aan het worden van een "probleempje" in Access 2000. We zijn bezig met een systeem, waarbij alle data op een server opgeslagen word, en de users enkel een frontend voor hun neus krijgen. So far so good, systeem draait (op de kinderziektes na) vrij goed, maar we hebben 1 "klein" probleempje, waar we niet uitkomen.
We maken in die frontend gebruik van een klein tussentabel, die word door de gebruikers gevuld, en als de bewerking klaar is, maken we deze weer leeg. Het probleem is dat er SOMS (zeg 1 van de 10 keer) bij het leegmaken een locking probleem optreed. Access geeft dan (een hele vanzelfsprekende) melding dat de gegevens gewijzigd zijn door een andere gebruiker (of een melding die er op lijkt, zijn meerdere meldingen die op hetzelfde neer komen). Dit lijkt me raar aangezien de tabel lokaal staat, en er dus maar 1 user tegelijk gebruik maakt van die tabel.

Nu zijn we op zoek gegaan naar de mogelijke oorzaken voor dit probleem, en komen we tot de conclusie dat deze problemen normaal gesproken alleen voorkomen wanneer gebruik gemaakt word van een Windows NT-based server. De machines waar de fout optreed draaien op windows 98..... :?

Is er hier iemand die enig idee heeft waar dit aan kan liggen?
ps. Tussentabel weghalen is een vrij lastige optie, de redenen daarvoor zijn niet zo van belang.
Als we van dit probleem afkomen, scheelt het mij een hoop op en neer lopen ;)

Alvast bedankt.

Xbox
Even the dark has a silver lining


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Het is heel moeilijk om hier iets over te zeggen zonder dat we kunnen zien hoe het geheel in elkaar zit. Maar ik kan me er ook wel weer iets bij voorstellen dat het niet overzichtelijk wordt als je het hier op het forum gaat gooien.

Ik ben een dergelijk probleem ook wel eens tegengekomen, en na lang zoeken kwam het uiteindelijk door een uitstapje dat ik even snel maakte naar een andere functie om iets te schrijven of weg te halen oid. Ik zat dus mezelf in de weg omdat ik een append had gedaan zonder te posten, en aan de andere kant alweer dingen wilde weghalen. Daar gaat Access niet vrolijk van worden.

Mijn tip: zet een paar breakpoints in je code en step er langzaam stapje voor stapje doorheen. En dan niet hersenloos alleen maar op die step-knop blijven rammen, maar kijk echt naar elke regel code die wordt uitgevoerd en bedenk of het wel goed is dat dat gebeurt.

My personal website


  • BM
  • Registratie: September 2001
  • Laatst online: 17:29

BM

Admin Softe Goederen
Topicstarter
Visual Basic:
1
2
3
4
5
6
DoCmd.GoToRecord , , acLast
aantal_artikel = Me.CurrentRecord
DoCmd.GoToRecord , , acFirst
For z = 1 To aantal_artikel
    DoCmd.RunCommand acCmdDeleteRecord
Next


dit is de code waar hij op vastloopt, simpelweg records weggooien dus. Andere manier om tabel leeg te halen geven eveneens om de zoveel keer een foutmelding.

Vage is dus ook dat het geen consequente fout is, maar 1 die soms uren niet komt, en dan 3 keer achter elkaar ofzo....

Xbox
Even the dark has a silver lining


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Dus je hebt bijvoorbeeld ook al een gewone delete-query gebruikt?

Ik vind eerlijk gezegd bovenstaande code zowiezo niet heel erg schitterend. Het had bijvoorbeeld al makkelijker gekund met een simpele while.
Maar..... je hebt Access tot je beschikking, waarom gebruik je dan "Delete * from Artikelen" niet? Vele malen sneller en stukken minder snel problemen. Wat retourneert me.CurrentRecord namelijk? Weet je zeker dat die ook het aantal records (juist) retourneert?

Zou je de delete query eens willen proberen? En is dit de enige plaats waar je iets met de betreffende tabel doet? (waarschijnlijk niet) En zo niet, geef je dan wel altijd netjes alles vrij? Of zou na een fout de tabel wel eens open kunnen blijven staan??? Nogmaals: even debuggen dus!

My personal website