Ik leest een record uit de DB in een ADODB.recordset, daarna verbind ik deze met een aantal TextBox-en:
Als je een tekst wijzigt, dan wordt op het moment dat de textbox de focus verliest, het bijbehorende veld in de recordset bijgewerkt. Daar krijg je ook netjes het WillChangeRecord-event bij.
Als je nu via een commandbutton de form unload, dan werkt alles prima: de velden in de recordset hebben de zelfde waarden als de textboxen, als je een update doet staan alle wijzigingen in de database.
Het probleem komt als je een tekst wijzigt en dan direct op de [x] close-button drukt. Dan krijg je geen WillChangeRecord-event, de laaste wijziging staat niet in de recordset. Als je een update in Form_Unload (of Form_QueryUnload) zet, dan komt de laatste wijziging dus ook niet in de database.
Doe ik iets fout? Ik kan nergens vinden dat dit een bekende bug is.
(titel moet natuurlijk form ipv from zijn
)
code:
1
2
| Text1.DataField = "FirstName" Set Text1.DataSource = Rec |
Als je een tekst wijzigt, dan wordt op het moment dat de textbox de focus verliest, het bijbehorende veld in de recordset bijgewerkt. Daar krijg je ook netjes het WillChangeRecord-event bij.
Als je nu via een commandbutton de form unload, dan werkt alles prima: de velden in de recordset hebben de zelfde waarden als de textboxen, als je een update doet staan alle wijzigingen in de database.
Het probleem komt als je een tekst wijzigt en dan direct op de [x] close-button drukt. Dan krijg je geen WillChangeRecord-event, de laaste wijziging staat niet in de recordset. Als je een update in Form_Unload (of Form_QueryUnload) zet, dan komt de laatste wijziging dus ook niet in de database.
Doe ik iets fout? Ik kan nergens vinden dat dit een bekende bug is.
(titel moet natuurlijk form ipv from zijn