[Access] Write conflict

Pagina: 1
Acties:

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Ik heb een formulier die op een query is gebaseerd is.
In het formulier vink ik een checkbox af en die checkbox heeft een OnClick event waarin een SQL statement wordt aangeroepen die een UPDATE query uitvoert om nog wat additionele gegevens in te vullen. Nou krijg ik een write conflict. Ik weet zeker dat ik de enige ben die in de database aan het werk ben, dus access ziet de update query als invoer van een andere user. Weet iemand hoe dit kan worden opgelost?

There is no beast without cruelty, Friedrich Nietzsche


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Wat is je preciese foutmelding dan? Dat je database exclusief geopend is?

Zitten je tabellen in dezelfde database. Of werk je in een frontend?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Zorg ervoor dat de query waarop het form gebasseerd is een snapshot is (dat wil zegen: hij haalt de gegevens op en sluit alles weer). Op die manier heb je er geen last van. Je kunt dit instellen bij de Query, maar ook bij het formulier, eigenschappen en dan tabblad Data: recordset type.

My personal website


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Write Conflict:
This record has been changed by another user since yoe started editing it. If you save the record, you will overwrite the shanges the other user made.
Copying the changes to the clipboard will let you look at the values the other user entered, and then past your changes back in if you decide to make changes

Save Record Copy to Clipboard Drop changes

Alles staat in een database en de tabellen zijn dus niet afgesplitst.

There is no beast without cruelty, Friedrich Nietzsche


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Waa... heb ik opeens een dubbelpost.

[ Voor 88% gewijzigd door OZ-Gump op 20-12-2002 13:37 ]

My personal website


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Als ik het form op snapshot zet is de recordset niet meer updateable

hehe Het moet niet gekker worden OZ

[ Voor 23% gewijzigd door Triple op 20-12-2002 13:38 ]

There is no beast without cruelty, Friedrich Nietzsche


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Als je recordset niet updateable is doordat je je form op snapshot zet, lijkt het erop dat die bijwerk-actie probeert te schrijven naar de query, en niet naar de tabel waarnaar die query verwijst. Kun je misschien de situatie ff schetsen met wat code/SQL erbij?

My personal website


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Geschouwd1_Click()

Dim strSchouwer As String
Dim SAP_No As String
Dim Charge_No As String
Dim Werk_Opdr As String

strSchouwer = Forms!Aanmelden!Gebruiker
SAP_No = Me.SAP_No
Charge_No = Me.Charge_No
Werk_Opdr = Me.Werk_Opdr

DoCmd.RunSQL "UPDATE Sample SET Schouwer1 = '" & strSchouwer & "' WHERE Sample.SAP_No = '" & SAP_No & "' AND Sample.Charge_No = '" & Charge_No & "' AND Sample.Werk_Opdr = '" & Werk_Opdr & "'"
DoCmd.RunSQL "UPDATE Sample SET DatumGeschouwd1 = Date() WHERE Sample.SAP_No = '" & SAP_No & "' AND Sample.Charge_No = '" & Charge_No & "' AND Sample.Werk_Opdr = '" & Werk_Opdr & "'"

Me.Geschouwd2.SetFocus
Me.Geschouwd1.Enabled = False
Me.Geschouwd1.Locked = True

End Sub


Dit is de code die wordt uitgevoerd bij het klikken op de checkbox.
De true en false waarde van de checkbox zelf komen uit een query en als ik de checkbox aanklik is het de bedoeling dat de waarde in de tabel komt waarop de query is gebaseerd... dat zal denk ik ook wel het probleem zijn....

Het is een select query btw

There is no beast without cruelty, Friedrich Nietzsche


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Als ik de de tabel gebruik als control source voor de ckeckbox heb ik het probleem dat ik de control niet mag editten.. want hij is verbonden aan de tabel.... dus da's ook niet echt een optie

There is no beast without cruelty, Friedrich Nietzsche


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Als ik het goed lees update je 2x hetzelfde record? Waarschijnlijk is er dan een timing probleem waardoor Access nog bezig is met het verwerken van de 1e update als de 2e update er aankomt.
Volgens mij maakt het ook niet uit of jij of een andere user dat record al gewijzigd hebt, het gaat Access er gewoon om dat het record gewijzigd is.

Als het om hetzelfde record gaat kan het toch gewoon in 1 keer, zoiets:
code:
1
UPDATE Sample SET Schouwer1 = '" & strSchouwer & "', DatumGeschouwd1 = Date() WHERE ...

Anders moet je naar de recordlocking kijken en moet je Pessimistic locking gebruiken waarbij je het record al lockt op het moment dat je het selecteert in plaats van optimistic waarbij je het record pas lockt als je de wijzigingen wegschrijf.
Alleen weet ik niet of dat wel mogelijk is met DoCmd.RunSQL.

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Ik verwacht dat je gelijk hebt wat betreft de moeilijkheden met het 2x updaten van het record, al zit het niet in de SQL query. De code is nl een on click event van een checkbox die in hetzelfde record wordt afgevinkt, dus het zal een probleem zijn tussen het afvinken en de SQL statement.

There is no beast without cruelty, Friedrich Nietzsche


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Goed, het is nu opgelost, zij het niet op de meest fantastische manier, maar het werkt :)
Ik heb gebruik gemaakt van de eigenschap die mij eerder de das omdeed, namelijk dat een formulier dat is opgebouwd uit een selectie query de toegevoegde data terug geeft aan de selectie query en deze op zijn buurt het record in de tabel weer aanpast.
Persoonlijk vind ik het niet echt prettig dat een selectie query ook werkt als update query, maar da's dan weer my 2 cents.
Ik heb nu dus de info die ik ook aan het record wou toevoegen ook in de selectie query gezet en vanuit daar in het formulier gezet, niet zichtbaar natuurlijk en met Me.Veld1 = date() voor de huidige datum bijvoorbeeld.
Nu wordt alles door de selectie query netjes in het record opgeslagen.....

There is no beast without cruelty, Friedrich Nietzsche

Pagina: 1