28. februar 2007 - 22:40Der er
10 kommentarer og 2 løsninger
Spørg før record forlades.
Hejsa Jeg har en formular, med en masse felter (fordelt på flere faner) Når jeg opretter en ny post, indtaster data, og går til næste post (eller eventuelt lukker formen) skal enkelte af felter verificeres. Det samme gælder hvis en record er blevet opdateret. Jeg har forsøgt med form afterupdate, men problemet er at denne hændelse trigger både ved indgang og udgangen af en ny record.
Sidder ikke med det pt. men er ret sikker på jeg testede både form_beforeupdate... samt afterupdate. Problemet er at dette trigger en hændelse så snart der indtasts i en ny record. Jeg har brug for at hændelsesforløbet starter når man går ud af recorden.
Hvorfor vil du først validere når man går ud af record? Med lidt bagvendt kode, kan du bruge 'current' til dette. Du kan evt. bruge noget a la nedenstående til at angive, hvilke værdier, der skal checkes if me.dirty then 'checker om record er ændret if me.feltderskalcheckes.value < 0 then ... endif endif
Men hvorfor ikke validere det enkelte felt, når man retter i det? Dette kan du evt. styre via det enkelte felts valideringsregler eller via VB hvis situationsafhængigt.
In the before update event the record has not yet been written to the table so you can make any alterations necessary if the data is not valid. In the AFTER update event the data HAS been written to the database so if you now validate you cant revert to the original (old) data.
Sometimes it is necessary to validate the whole form/fields at the same time because som fields may be depandant on values in other fields.
And this is an example also taken from Access Help. Note that setting Cancel = True cancels the update so that data can be changed BEFORE the data is written to the dB.
Private Sub ProductName_BeforeUpdate(Cancel As Integer) If(Not IsNull(DLookup("[ProductName]", _ "Products", "[ProductName] ='" _ & Me!ProductName & "'"))) Then MsgBox "Product has already been entered in the database." Cancel = True Me!ProductName.Undo End If End Sub
Terry sender du lige et svar - jeg bruger before update. Gjorde jeg også før, men kunne ikke få det til at spille fordi der lå en me.requery på et af felterne. My bad...
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.