26. oktober 2009 - 22:52Der er
7 kommentarer og 1 løsning
Hjælp til "Invalid use of null" i formular
Private Sub Form_BeforeInsert(Cancel As Integer) Dim X As Single X = DLast("[InspTargethours]", "QryC172ProductionControlledItems", ([AC_Reg] = "Me.AC_Reg"))
Me![Target hours] = X
Dim Y As Single Y = DLast("[InspTargetcycles]", "QryC172ProductionControlledItems", ([AC_Reg] = "Me.AC_Reg"))
Me![Target cycles] = Y
Dim Z As Date Z = DLast("[Insp Target date]", "QryC172ProductionControlledItems", ([AC_Reg] = "Me.AC_Reg"))
Me![Target date] = Z
End Sub
Ovennævnte kode virker, men kun under visse betingelser, nemlig at "Target hours","Target cycles" og "Taget date" felterne ikke må være nul eller empty. Koderne overfører værdien "Insp Target ..." til feltet "Target…" i næste post. Hurtig forklaring: I felterne "Target hours", "Target cycles" og "Target date" lægges en startværdi ind i forespørgslen. Der vil aldrig blive lagt værdi ind i alle felterne samtidig. Det kunne f.eks. se således ud - "Target hours" = 756,67 og "Target date" = 09/09/2009. I feltet "Target cycles" indtastes ingen værdi. Når koden køres får jeg fejlen "Invalid use of Null" hvilket jeg godt forstår da "Target cycles" ingen værdi har. Jeg har prøvet at tilføje If-Then-Else sætning, således at det stykke kode hvor "Target værdien" er null eller empty springes over, men kan ikke få det til at virke, men det må jo kunne lade sig gøre, eller hvad?
Uden at være helt sikker så vil jeg påstå at det ikke har noget med 'Target cycles' at gøre da du ikke læser den nogen steder i din kode. (I øvrigt giver det mig myrekryb at se at nogen stadig bruger mellemrum i feltnavne)
Men hvor præcist i dein kode er det fejlen kommer?
Jeg synes at de kriterier der er sat op for din DLast ser forkerte ud, men jeg bruger aldrig de funktioner så jeg er ikke 100% - de er generelt for langsomme når man arbejder på store datasæt. Du kunne også prøve at anvende NZ funtionen når du læser fra formen. Så kan du få en default værdi hvis værdien er Null.
Det virker hvis jeg indsætter en værdi i "Target date", men hvis jeg kun indsætter værdier i "Target hours" og "Target cycles" så får jeg fejl på datofeltet. Hvis jeg indsætter "Nz" foran dato delen indsættes "30/12/1899" automatisk i "Target date" feltet når formularen åbnes.
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.