Avatar billede snowball Novice
01. december 2009 - 10:35 Der er 7 kommentarer og
1 løsning

Undgå Write Conflict ved opdatering af felt

Hej.

Jeg er ved at rette lidt i en Access 2003 applikation, og har fået et problem med "Write Conflict".

Jeg har en form som er bundet op på et datasæt (en forespørgsel). Formen indeholder også en "sub form" som viser nogle flere data i "grid view" (eller hvad det nu kaldes). Der er blevet tilføjet et nyt felt i tabellen og dermed også en ny "text box" til at vise dette felt.

Nu ønsker jeg så at man kan opdatere indholdet af det nyligt tilføjet felt.

Den måde jeg gør det på nu er ved at have en "On Lost Focus" event på text box'en som så kører en DoCmd.OpenQuery "myQuery" der opdaterer feltet i tabellen med den nye værdi.

Det virker som sådan også, men når jeg så forsøger at lukke formen eller går videre til en anden record, så kommer beskeden om "Write conflict" fordi indholdet har ændret sig siden Access indlæste data.

Det er jo også korrekt, men hvordan undgår jeg den fejl? Er der en mere smart måde at opdatere feltet på? Access GUI og indbyggede funktioner er ikke lige min stærke side ;)

På forhånd tak.
Avatar billede terry Ekspert
01. december 2009 - 10:43 #1
Need to understand the problem better.

Are you editing the record in the sub form?

Why do you need to run a query to update the field, cant you do it on the form?

Can you give some more information?
Avatar billede terry Ekspert
01. december 2009 - 10:44 #2
If your editing the record in the form and then at the same time try and update the record i a query then you will (maybe) get a conflict.

Wait until the AFTER UPDATE event and then run the query??
Avatar billede snowball Novice
01. december 2009 - 11:07 #3
Nej, det felt jeg vil opdatere tilhører min "main form" - ikke sub formen.

Men nu ser det ud til at virke uden min update query - ved ikke lige hvad der gik galt første gang jeg testede det :S

Lav et svar så vi kan lukke :)
Avatar billede terry Ekspert
01. december 2009 - 11:22 #4
svar :o)
Avatar billede terry Ekspert
01. december 2009 - 12:20 #5
mange tak
Avatar billede Slettet bruger
01. december 2009 - 16:36 #6
Det giver kun problemmer og gør ting indviklet når man piller ved ved datakilde(rne) til en  kørende formualar(og underformlar ...) direkte - altså uden om formularens standardmekanisme -  reference gennem feltværdier.
Det er en god regel at holde sig til felterne - man kan sagtens select/update/insert/alter/drop  på alle andre datakilder - bare der ikke er nogle formularer der har dem åbne.
Avatar billede snowball Novice
01. december 2009 - 21:19 #7
ellebe: Som tidligere nævnt, så forsøgte jeg også at gøre det sådan først, men af en eller anden årsag blev feltet ikke opdateret i databasen. Derfor forsøgte jeg at gøre det manuelt.
Avatar billede Slettet bruger
01. december 2009 - 21:51 #8
ja - nogle gange må man ty til
docmd.runcomand accmdsaverecord
requery (form or control)

if me.dirty then ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester