Avatar billede dane022 Seniormester
22. februar 2016 - 08:07 Der er 8 kommentarer og
1 løsning

Afterupdate vba

Jeg har følgende kode som ved afkrydsning af fluebensfelt i en formular, skal sætte en dato i tabellen tabel1 i felt1:

Private Sub Til_Danmarks_lærerforening_AfterUpdate()
If Me.Til_Danmarks_lærerforening = yes Then
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tabel1 SET [felt1] = date()  WHERE [CPR nummer] = '" & Me![Cpr nummer] & "'"
DoCmd.SetWarnings True
End sub

Men dags dato bliver ikke sat i feltet felt1 og jeg ved ikke hvorfor. Samme kode virker andre steder i databasen hvor dags dato sættes ud for cpr-nummeret når f.eks. en rapport åbnes.

I stedet får jeg en meddelelse om, om at en anden bruger har ændret i posten siden jeg åbnede den (passer ikke) og at jeg kan kopiere ændringerne til udklipsholder. Hvis jeg prøver det, er det hele posten der kopieres over.
Avatar billede terry Ekspert
22. februar 2016 - 08:44 #1
Is the table you are trying to update and also the record the one you have just changed in form? If so then I would suggest just updating the field [felt1] in the form in the BEFORE update event not after update event.
Avatar billede terry Ekspert
22. februar 2016 - 08:45 #2
when you change a field in a form the record is still in edit mode, so trying to use SQL to update the same record is going to give an error.
Avatar billede dane022 Seniormester
22. februar 2016 - 10:17 #3
Jeg har prøvet, at flytte den del af koden til before update, men jeg får stadig samme fejl og datoen bliver ikke sat
Avatar billede terry Ekspert
22. februar 2016 - 10:33 #4
your welcome to send me dB and I'll take a look
ekspertenATsanthell.dk
AT = @
Avatar billede bvirk Guru
22. februar 2016 - 11:18 #5
dane022: du ignorer hvad Terry skriver i #2 - med andre ord: 'Du' er selv den anden bruger, der genem direkte sql operation på den tabel der er formularen datakilde, afvises i at kaste grus i synkroniteten mellem dette tabelindhold og formularen kopi (=recordset) af tabellen.

Det er et dogme at man skal undgå at 'gå bagom' i hvertfald med formularers datakilde.

Så vidt  jeg har forstået: Hvis felt1 ikke er bundet til et tekst kontrolelement på formularen så træk et ned fra vis felter boksen og tildel det værdien date() i eventen - kontrolelementet behøver ikke være synlig.
Avatar billede dane022 Seniormester
22. februar 2016 - 12:05 #6
Så er databasen sendt til dig Terry
Avatar billede terry Ekspert
22. februar 2016 - 12:28 #7
received, back asap
Avatar billede dane022 Seniormester
22. februar 2016 - 20:53 #8
Mange tak, det virker
Avatar billede terry Ekspert
23. februar 2016 - 08:58 #9
Just so others know whats been done.

Removed code shown above and instead use following code in before update event of field.

If Me.Til_Danmarks_lærerforening = True Then
    Me.Danmarks_Lærerforening = Date



And thanks for the points
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