25. januar 2018 - 12:37Der er
12 kommentarer og 1 løsning
Aktivering af BeforeInsert i formular
Jeg har denne kode i en formular, og den virker efter hensigten. Den tildeler det næste nummer i rækken til min kasse, uden at jeg behøver at bruge autonummerering, hvilket i det aktuelle tilfælde ikke er optimalt.
Private Sub Form_BeforeInsert(Cancel As Integer) KasseNr = Nz(DMax("KasseNr", "KasseNrTest")) + 1 End Sub
Formularen har en underformular, hvor linket er ovennævnte KasseNr.
Det der tricker mig, er at når jeg åbner en ny post i formularen, er der selvfølgelig ikke noget nummer. Det kommer, når jeg taster noget i et andet felt. Problemet er, at jeg sådan set ikke har behov for at taste noget i et andet felt, når jeg åbner posten, det kommer først senere. I første omgang har jeg kun behov for at taste i underformularen, men det "aktiverer" ikke mit KasseNr. Er der en smartere løsning, end at sætte et ja/nej felt ind, til at taste i?
Sub NewRecordMark(frm As Form) Dim intnewrec As Integer
intnewrec = frm.NewRecord If intnewrec = True Then MsgBox "You're in a new record." _ & "@Do you want to add new data?" _ & "@If not, move to an existing record." End If End Sub
Uden at jeg har testet, så tror jeg ikke dit forslag helt gør det jeg har brug for, og min kode virker sådan set også. Hvis jeg er startet med KasseNr 700, tildeler den nr 701 til den næste og så fremdeles. Og jeg er ikke så låst som ved automnummereringen, som ellers umiddelbart var den nemmeste løsning. Det der ikke er optimalt, er at jeg skal taste et eller andet i formularen, for at mit nummer bliver tildelt. Jeg ville jo allerhelst, at det kom, når jeg åbnede en ny post, eller i hvert fald når jeg tastede i underformularen. KasseNr er primærnøgle i den tilhørende tabel
The record in the main form doesn't exist until you are finished entering the required data, so creating related records in the sub form is pointless until the record in main form exists.
De eneste data jeg har brug for i hovedformularen er det nummer som koden tildeler. Det er det der er "humlen ved det". Senere skal der også tastes lidt mere, men det kan være både dage og uger senere. Nummeret skal tildeles med det samme. Jeg kunne løse det med et ja/nej felt f.eks. "Er nummer tildelt". Tænkte bare, om det kunne gøres lidt smartere.
Is it the fact that you need to start entering the data to trigger the BeforeInsert event?
Well Access can do many things, but it cant guess that you want to create a new record. So you have to tell it :-)
So, unless you start entering data into a new record you need some way of telling access that you intend creating a new record. So you can use the method I am suggesting wit a button and then at the same time use your code to calculate next KasseNr and insert into field.
Jeg når ikke lige at teste mere af før i morgen, #6 har overhalet #5 indenom, så den har jeg først lige læst. Og, jeg har en knap til at åbne en ny post, det har jeg haft hele tiden, det havde jeg bare ikke fået skrevet.
Terry, det var lige det der virkede :-) Thor jeg prøvede ikke din løsning, måske virker den også
Mit problem er, at jeg i hvert fald ikke endnu, har alt for godt styr på alle disse evnets, hvornår jeg skal bruge den ene fremfor en anden. Min beforeInsert løsning var en jeg havde googlet mig frem til, jeg manglede jo så bare lige det sidste.
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.