04. maj 2005 - 16:02
Der er
6 kommentarer og 1 løsning
Check af felter inden man forlader posten.
Hejsa Jeg har koden her: Private Sub Form_AfterInsert() If Me.STAtype1 = False or me.STAtype2 = False Then MsgBox "You must select at categori?", vbCritical DoCmd.CancelEvent End If End Sub Den kommer ganske rigtigt op med en fejl. Men hvis jeg klikker "OK" så går den alligevel videre til en anden post. Den skal stoppe på den post, så man får valgt en kategori
Annonceindlæg fra Novataris
Det er fordi du ikke kan bruge Docmd.Cancelevent på After-hændelser. Kun på de hændelser, som har en parameter Cancel med. F.eks. Form_Beforeinsert: Private Sub Form_BeforeInsert(Cancel as integer) If Me!STAtype1 = False or Me!STAtype2 = False Then MsgBox "You must select at categori?", vbCritical DoCmd.CancelEvent End If End Sub
Det hjælper mig jo ikke, når jeg vil checke om en checkbox er udfyldt inden man forlader posten.
Hvad sker der nu? ah...BeforeInsert trigges hvis allerede når man indtaster første tegn i en ny post. Prøv at lægge denne kode i form_BeforeUpdate: If Me.Newrecord then If Me!STAtype1 = False or Me!STAtype2 = False Then MsgBox "You must select at categori?", vbCritical DoCmd.CancelEvent End If endif
så er der ingen reaktion overhovedet.
hov hov, lagde den vist det forkerte sted
Det virker squ da bare. Det er næsten for nemt, når man bare ved det. Takker
Ja, men den med beforeInsert er lidt special. Access mangler faktisk et par hændelser i den henseende :o( tak for point :o)
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser