Avatar billede brix66 Nybegynder
19. januar 2003 - 14:27 Der er 16 kommentarer og
2 løsninger

Forkert indtastet post gemmes...

Hej
Med stor hjælp fra Terry fik vi arbejdet os frem til en kode som jeg søgte efter i sp 306408.
Den blev som følger:
Private Sub Tid_BeforeUpdate(Cancel As Integer)
If IsNull(DLookup("tidspunkt", "tbltidspunkt", "tidspunkt = #" & Me.Tid & "#")) Then
        MsgBox "Du har tastet ugyldig tid"
        Cancel = False
    End If
End Sub
Samme kode har jeg på dato feltet.
Dog er der følgende problemer:
1. Posten gemmes uanset om der er tastet forkert dato og/eller tid.
2. Hvis jeg taster forkert dato (som er det første felt) og jeg får msgbox om at det er forkert, nulstilles feltet ikke, men cursor går til felt tid (som er det andet felt). Taster jeg korrekt dato, men forkert tid går cursor til dato feltet og sletter både tid og dato, men tilføjer dog posten alligevel. Håber der er nogen der kan hjælpe en Quinde i nød.
/Brix
Avatar billede brix66 Nybegynder
19. januar 2003 - 14:29 #1
Med "sletter" i punkt 2. mener jeg nok "tømmer"...
Avatar billede mugs Novice
19. januar 2003 - 14:33 #2
Kære Quinde i nød:

Kan det have noget at gøre med valideringsregler, som en amatør tidligere har lavet?

Prøv evt. at arbejde lidt med funktionen Me.Undo.

Mvh / mugs
Avatar billede kabbak Professor
19. januar 2003 - 14:34 #3
m MsgBox "Du har tastet ugyldig tid"
        Cancel = False
me.datofelt setfocus
Avatar billede mugs Novice
19. januar 2003 - 14:34 #4
Prøv evt.:

If IsNull(DLookup("tidspunkt", "tbltidspunkt", "tidspunkt = #" & Me.Tid & "#")) Then
MsgBox "Du har tastet ugyldig tid"
Me.Undo
End If
End Sub
Avatar billede brix66 Nybegynder
19. januar 2003 - 14:35 #5
Nope, valideringsreglerne som i øvrigt en prof jeg kender har hjulpet mig med, er fjernet.
Avatar billede brix66 Nybegynder
19. januar 2003 - 14:36 #6
Jeg tester lige.....
Avatar billede mugs Novice
19. januar 2003 - 14:38 #7
snøft - "den" har fjernet mine valideringsregler.
Avatar billede brix66 Nybegynder
19. januar 2003 - 14:41 #8
Nu skal du være sød - valideringsreglerne er indsat i min "Access TIPS & Trix" til senere brug.
Avatar billede mugs Novice
19. januar 2003 - 14:43 #9
Ok mor!
Avatar billede brix66 Nybegynder
19. januar 2003 - 14:45 #10
Når jeg indtaster en forkert dato tømmes feltet og cursor står i dato. Så langt så godt.
Når jeg indtaster en korrekt dato og står i tid, indtaster en forkert tid, får msgbox om at det er forkert, går cursor til dato feltet og tømmer både dato og tid. Dog tilføjes posten ikke nu den er forkert så vi er på rette spor.
Avatar billede mugs Novice
19. januar 2003 - 14:50 #11
Indsæt den samme kode i Dato BeforeUpdate, blot tilrettet datofeltet, så koden virker på dato og ikke tid.
Avatar billede brix66 Nybegynder
19. januar 2003 - 14:52 #12
Det har jeg gjort for længe siden.
Avatar billede mugs Novice
19. januar 2003 - 15:00 #13
Nu tvinger du mig jo til at indrømme, at jeg har fået et anfald af præsenil demens. Men Ok - når det skal være sådan, så må jeg jo rehabilitere mig og bede dig sende din db :o)
Avatar billede brix66 Nybegynder
19. januar 2003 - 15:06 #14
Er tilrettet det gamle access 97 og sendt...
Avatar billede brix66 Nybegynder
19. januar 2003 - 16:36 #15
mugs er kommet frem til følgende:
Private Sub Dato_BeforeUpdate(Cancel As Integer)
Dim Error As Integer
On Error GoTo Errorhandler
If IsNull(DLookup("dato", "tbldato", "dato = #" & Me.Dato & "#")) Then
        MsgBox "Du har tastet ugyldig dato"
        Me.Undo
        End If
        DoCmd.GoToControl "Dato"
       
Errorhandler:
If Error = 2115 Then
Me.Dato = Null
DoCmd.GoToControl "Dato"
End If
End Sub
Og det virker også på dato.
Men det virker ikke på tid. Hvis man taster en forkert tid tilføjer den posten og går videre til ny post, på trods af at man har tastet forkert.
Avatar billede terry Ekspert
19. januar 2003 - 21:04 #16
mugs your going to have to do better than this if you want to get to number one. :o)

Private Sub Dato_BeforeUpdate(Cancel As Integer)
    If IsNull(DLookup("dato", "tbldato", "dato = #" & Me.Dato & "#")) Then
        MsgBox "Du har tastet ugyldig dato"
        Cancel = True
        Me.Dato.Undo
       
       
    End If
End Sub

Private Sub Tid_BeforeUpdate(Cancel As Integer)
    If IsNull(DLookup("tidspunkt", "tbltidspunkt", "tidspunkt = #" & Me.Tid & "#")) Then
        MsgBox "Du har tastet ugyldig tid"
        Cancel = True
        Me.Tid.Undo
       
    End If
End Sub
Avatar billede brix66 Nybegynder
19. januar 2003 - 21:17 #17
Det er nu testet og fundet 100 % i orden.
Jeg vil sige 1000 tak til terry og mugs for jeres enorme hjælpsomhed.
/Brix - en quinde der VAR i nød.....
Avatar billede mugs Novice
19. januar 2003 - 21:53 #18
terry > Sometimes I regret, that I have involved me in this community called "eksperten.dk". And often I ask Myself:

Why do things difficult when things are so simple?

I will store this example in my mind in this directory:

MyMind:/Hownottodo

And by the way: I don't want to be no. 1. That position is allready taken!

Good Night My Friends

/ Mogens
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