Jeg har hørt det er muligt og tilrådeligt i Access 2003 at indkode "fælder" for at sikre korrekt dataindtastning:
Fx der kommer en meddelelse hvis man i en kolonne svarer "nej" og i en anden kolonne svarer "ja" - fx "nej, der er ikke sygdom" og i en anden kolonne "ja, der er komplikationer til sygdom" - de to udsagn er selvmodsigende da der ikke kan være komplikationer til sygdom hvis der ikke er sygdom.
Jeg ønsker at lave flere af den slags "fælder" gerne på tværs af relaterede tabeller om muligt? Jeg tror ikke løsningen for mig er at gøre felterne afhængige af hinanden så et felt kun kommer op hvis man har svaret "ja" idet jeg har brug for at felterne udfyldes til efterfølgende statistiske beregninger.
Jeg er ny i Access og håber at det ikke er det rene volapyk jeg har spurgt om - jeg har ikke kunnet finde svaret i tidligere spørgsmål.
Og dette sætter jeg ind som en valideringsregel i begge de pågældende spørgsmål?
Når jeg prøver at sætte dette ind som valideringsregel i udtryksgeneratoren
If me.Smertfrie perioder = "1" and me.Antal smertefrie perioder = "0" then msgbox "Der er fejl i indtastning da der er svaret "ja" til smertefrie perioder" End If
(Idet der ikke kan være 0 smertefrie perioder hvis der har været smertefrie perioder idet 1 = ja)
Så kommer der besked om at det er en ugyldig syntaks?
Jeg plejer at benytte Before_Update event på formularen til at checke at alt er udfyldt korrekt.
Private Sub Form_BeforeUpdate() Cancel=Not ValidateForm()
End Sub
Public Function ValidateForm() As Boolean Dim strMsg As String
'There must be a title If Me.tb_PackName & "" = "" Then strMsg = strMsg & vbNewLine & "(*) The name property must be filled in" End If
'There must be a date received If Me.tb_DateReceived & "" = "" Then strMsg = strMsg & vbNewLine & "(*) The Date received must be filled out" End If
'The issuer must be selected If IsNull(Me.cmb_Issuer) Then strMsg = strMsg & vbNewLine & "(*) The issuer must be selected" End If
If strMsg & "" <> "" Then strMsg = "The record could not be saved for the following reason(s):" & vbNewLine & strMsg & vbNewLine & vbNewLine & _ "Please correct and try again." MsgBox strMsg ValidateForm = False Else ValidateForm = True End If
End Function
En fordel ved denne tilgang er at den samler alle fejlene og præsenterer dem på en gang. I mit eksempel checkes der blot at felterne er udfyldt, men det kan jo tilpasses.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.