Avatar billede Motjida Novice
20. august 2014 - 12:59 Der er 6 kommentarer og
1 løsning

Opdater Form efter Record delete

Hej Eksperter,

Jeg har en form med to child forms. Jeg vil gerne have at hvis jeg sletter en record i den ene child form, så skal en kolonne opdateres i den anden child form.

De to child forms er ikke relateret.

Jeg har en AfterUpdate event på den ene child form der fint opdaterer den anden child form, men jeg har meget svært ved at få Access til at håndtere events efter record deletes.

Jeg har forsøgt mig med Form_Delete event, men eftersom den value der skal bruges endnu ikke er ændret i det step, virker det ikke rigtigt.

Jeg har også forsøgt mig med Form_Current, men jeg synes ikke altid at den trigger når den skal og yderligerer resulterer den i et hav af unødvendige triggers og får hele formen til at blinke konstant og afbryde normal indtastning.

Her er et eksempel på min AfterUpdate (som virker fint):

Private Sub txtQUANTITY_AfterUpdate()

'Calculate Total Weight
Me.txtTOTAL_WEIGHT = calcTotalWeight()

'Force save record
DoCmd.RunCommand acCmdSaveRecord

'Update 'Parent' Total Weight
Form_frmOrderProductMixed.mixedWeight (Me.MIXED_BOX_ID)
Form_frmOrderProductMixed.Refresh

End Sub
Avatar billede terry Ekspert
20. august 2014 - 13:26 #1
you need to us .requery
Avatar billede terry Ekspert
20. august 2014 - 13:27 #2
.Requery the child form in the after delete event of the form where you delete the record.
Avatar billede terry Ekspert
20. august 2014 - 13:34 #3
Jeg har forsøgt mig med Form_Delete event, men eftersom den value der skal bruges endnu ikke er ændret i det step, virker det ikke rigtigt.

If the record is deleted then there is no value???
Avatar billede Motjida Novice
20. august 2014 - 14:26 #4
Når records i Form1 tilføjes/ændres/slettes skal total stk holdes opdateret i Form2.

Ved ændringer og tilføjelser klarer jeg det ved det stykke kode jeg oprindeligt vedhæftede spørgsmålet (AfterUpdate) og det virker upåklageligt.

Når jeg sletter en record kan jeg fange eventet i Form_Delete, men record'en er ikke slettet før Form_Delete er afsluttet. Dette betyder at min mixedWeight funktion i Form2 ikke ser ændringen og henter en inkorrekt sum.
Avatar billede terry Ekspert
20. august 2014 - 14:59 #5
After Delete Confirm the record should be deleted
http://office.microsoft.com/en-au/access-help/HV080751536.aspx
Avatar billede Motjida Novice
20. august 2014 - 15:15 #6
BeforeDelConfirm and AfterDelConfirm are only triggered if you suppress the standard Deletion Confirmation in Access, but I'm not using confirmations for these deletions, so they are never triggered.
Avatar billede Motjida Novice
20. august 2014 - 15:21 #7
Jeg har løst problemet, men det er ikke kønt og jeg ville ønske Access havde en ordentlig AfterDelete (ligesom de har AfterUpdate).

Til info har jeg valgt at gøre brug af Form_Timer og Form_Delete. Ved at slette en record aktiveres Form_Delete som starter Form_Timer der igangsætter opdateringen og slår timeren fra igen:

Private Sub Form_Timer()

Me.Requery

'Update 'Sibling' Total Weight
Form_frmOrderProductMixed.mixedWeight (Me.MIXED_BOX_ID)
Form_frmOrderProductMixed.Refresh

Me.TimerInterval = 0

End Sub

Private Sub Form_Delete(Cancel As Integer)

Me.TimerInterval = 1

End Sub
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

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