Avatar billede vanni Nybegynder
15. august 2003 - 20:17 Der er 11 kommentarer og
1 løsning

Access, ti stille! jeg ved godt hvad fejlen er!

Hej

Kunne man få Access til at lade være med brokke sig, når jeg nu har fortrudt.

Nogen der har et bud på, hvad jeg gør galt?

Private Sub Form_Error(DataErr As Integer, Response AS Integer)
    ' (3314)felt angivet til true, annuller sidste handling og informer bruger
    ' nulstil eller undgå fejlmeddelelse fra Access - men hvordan?

    On Error GoTo Err_Luk
   
    If DataErr = 3314 Then
        Me.Undo
        MsgBox "Der skal indtastes nr, før du går til næste"
        On Error GoTo 0
    End If
   
Exit_Luk:
    Exit Sub

Err_Luk:
    MsgBox Err.Description
    Resume Exit_Luk

End Sub

Mvh. Vanni
Avatar billede kabbak Professor
15. august 2003 - 20:21 #1
Private Sub Form_Error(DataErr As Integer, Response AS Integer)
    ' (3314)felt angivet til true, annuller sidste handling og informer bruger
    ' nulstil eller undgå fejlmeddelelse fra Access - men hvordan?

       
    If DataErr = 3314 Then
        Me.Undo
        MsgBox "Der skal indtastes nr, før du går til næste"
      Exit Sub
    End If
  On Error GoTo Err_Luk


 
Err_Luk:
    MsgBox Err.Description
    Resume Exit_Luk

End Sub
Avatar billede mugs Novice
15. august 2003 - 20:22 #2
Hvor har du 0?

On Error GoTo 0
Avatar billede kabbak Professor
15. august 2003 - 20:23 #3
Private Sub Form_Error(DataErr As Integer, Response AS Integer)
    ' (3314)felt angivet til true, annuller sidste handling og informer bruger
    ' nulstil eller undgå fejlmeddelelse fra Access - men hvordan?

       
    If DataErr = 3314 Then
        Me.Undo
        MsgBox "Der skal indtastes nr, før du går til næste"
          Exit Sub
        End If
On Error GoTo Err_Luk
  Exit Sub

Err_Luk:
    MsgBox Err.Description
   
End Sub
Avatar billede mugs Novice
15. august 2003 - 20:28 #4
Vi har allerede haft en If Error Then GoTo bla bla:
Så mener jeg ikke det er nødvendigt med en err.Describtion. ddette må være nok:

If DataErr = 3314 Then
MsgBox "Der skal indtastes nr, før du går til næste"
Me.Undo
Exit Sub
End If
End Sub

Jeg har desuden flyttet Me.Undo, så brugeren kan se, hvad der mangler.
Avatar billede vanni Nybegynder
15. august 2003 - 20:36 #5
Mugs: "On Error GoTo 0" skulle så vidt jeg kan forstå, få Access til at tro, der ingen fejl er. Jeg kan compilere min kode uden fejl.

Jeg har prøvet eksemplerne, men Access råber stadig op!
Avatar billede mugs Novice
15. august 2003 - 20:39 #6
"On Error GoTo 0" skulle så vidt jeg kan forstå:

Får jo Access tyil at gå til linien 0.

Hvad råber den?
Avatar billede mugs Novice
15. august 2003 - 20:46 #7
Du kan også prøve en helt anden vej. Inden du lagrer data i tabellen, kan du måle om feltet er Null:

If IsNull(Me.FELTNAVN) Then
MsgBox "Der skal indtastes nr, før du går videre."
End If
Avatar billede mugs Novice
15. august 2003 - 20:51 #8
Du kan så sende markøren tilbage til feltet:

If IsNull(Me.FELTNAVN) Then
MsgBox "Der skal indtastes nr, før du går videre."
DoCmd.GoTocontrol "FELTNAVN"
End If

Det er ikke nødvendigt men en Me.Undo, da der jo ikke er noget "at Undo", der er ikke skrevet noget i feltet.

Hvis du absolut vil have en Undo, er det kun nødvendigt at Undo det enkelte felt:

If IsNull(Me.FELTNAVN) Then
MsgBox "Der skal indtastes nr, før du går videre."
DoCmd.GoTocontrol "FELTNAVN"
Me.FELTNAVN.Undo
End If
Avatar billede vanni Nybegynder
15. august 2003 - 21:28 #9
Kommentar: mugs
15/08-2003 20:39:05

Jeg når at fange fejlen (Felt er angivet til true 3314) og får givet besked med msgbox.

"On Error GoTo 0" skulle bilde Access ind, at der ingen problemer er

Citat fra hjælp: "On Error GoTo 0 Disables any enabled error handler in the current procedure."

Jeg har tænk på "IsNull løsningen", men droppede det i første omgang, da den kode, jeg har skrvet i spørgsmålet er dejlig enkel.

Det hele foregår i en underformular med flere felter, så for slippe for at chekke på alle felter, ville jeg forsøge denne løsning.
Avatar billede hekla Nybegynder
15. august 2003 - 22:06 #10
Sæt følgende ind i formularens VedFejl hændelse:

Private Sub Form_Error(DataErr As Integer, Response As Integer)

If DataErr = 3314 Then

        ' Vis custom fejl-meddelelse
        MsgBox "min tekst ved fejl"

        ' Undertrykker Access normale fejl-meddelelse.
        Response = acDataErrContinue

    End If

End Sub
Avatar billede vanni Nybegynder
15. august 2003 - 22:18 #11
Hekla: Jeg bukker dybt!
Avatar billede hekla Nybegynder
15. august 2003 - 22:21 #12
takker:o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB