Avatar billede krasmussen Praktikant
20. november 2003 - 14:30 Der er 19 kommentarer og
1 løsning

Vise tekst fra fejl til brugeren

I forskellige funktioner m.m. prompter jeg brugeren for værdier osv.

Hvordan viser jeg fejlen hvis brugeren f.eks. taster noget vrøvl i en numerisk variabel. Et eks.

FOR i = 1 to 5 do bla. bla.

1 og 5 er variable som der promptes for, hvis brugeren fejlagtigt skriver abc i stedet for et tal, vil jeg returnere noget i stil med: "Din angivne værdi abc er forkert" osv. osv. og herefter forlade rutinen så INTET af koen gennemføres
Avatar billede jkrons Professor
20. november 2003 - 14:42 #1
A = Inputbox (dit input)
IF A = Vrøvl THEN
  MSGBOX "Du har tastet noget vrøvl"
  EXIT SUB
END IF
din kode
Avatar billede krasmussen Praktikant
20. november 2003 - 15:07 #2
OK nu mente, hvis brugeren taster en ikke numerisk værdi og henvise til den streng som du så tastede
Avatar billede krasmussen Praktikant
20. november 2003 - 15:08 #3
OK nu mente jeg at, hvis brugeren taster en ikke numerisk værdi!. Og så i fejlmeddelsen henvise til den streng som brugeren så tastede
Avatar billede Morten Nybegynder
20. november 2003 - 15:11 #4
jeg bruger denne til at kontrollerer:

Private Sub tbAntal_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyPressNumbersOnly KeyAscii
End Sub

... og her funktionen:

Public Sub KeyPressNumbersOnly(ByVal KeyAscii As MSForms.ReturnInteger)
'Flemming Dahl, April 2000, fd@smartoffice.dk
    'eks. i KeyPress subben:    KeyPressNumbersOnly KeyAscii
    Select Case KeyAscii
        Case vbKey0 To vbKey9, vbKeyBack
        Case Else
            Beep
            KeyAscii = 0
    End Select
End Sub
Avatar billede Morten Nybegynder
20. november 2003 - 15:12 #5
Med den er det kun muligt at indtaste numeriske værdier - dvs at brugeren aldrig skriver noget forkert...
Avatar billede Morten Nybegynder
20. november 2003 - 15:13 #6
Jeg bruger den godt nok i Excel VBA - men mon ikke den også virker i Access?!
Avatar billede jkrons Professor
20. november 2003 - 15:15 #7
Du kan bruge den cddk, anvender, der tester på hvert eneste anslag (men jeg ved faktisk ikke om den virker i Inputbokse. Eller du kan bruge noget i denne stil:

VarX = Inputbox("Indtast første tal")
If Not IsNumeric(varX) Then
Msgbox "Du skal indtaste et tal", vbOkOnly + vbExclamation
Exit Sub
End If

Lad VarY vælre lig input boks til andet tal, og gentag ovenstående. Fortsæt dernæst med din egen kode.
Avatar billede jkrons Professor
20. november 2003 - 15:17 #8
Altså:

VarX = Inputbox("Indtast første tal")
If Not IsNumeric(varX) Then
  Msgbox "Du skal indtaste et tal", vbOkOnly + vbExclamation
  Exit Sub
End If

VarY = Inputbox("Indtast første tal")
If Not IsNumeric(varY) Then
  Msgbox "Du skal indtaste et tal", vbOkOnly + vbExclamation
  Exit Sub
End If

For i = VarX to VarY ....
Avatar billede krasmussen Praktikant
20. november 2003 - 15:31 #9
Brugte modellen fra jkrons - tak for hurtig hjælp
Avatar billede krasmussen Praktikant
20. november 2003 - 15:35 #10
Iøvrigt, hvis jeg vil præsentere brugeren for den forkert indtastede værdi - ligger det "lige til højre fod"
Avatar billede mugs Novice
20. november 2003 - 15:45 #11
Ikke afprøvet:

Msgbox "Du skal indtaste et tal" & VarX &, vbOkOnly + vbExclamation
Avatar billede jkrons Professor
20. november 2003 - 15:52 #12
mugs' løsning burde virke.

Tak for point.
Avatar billede krasmussen Praktikant
20. november 2003 - 16:03 #13
Selvtak. mugs --> Det virker perfekt, det burde nok være et sep. sp,. men hvordan indsætter jeg linieskift & vbLf har ingen effekt
Avatar billede jkrons Professor
20. november 2003 - 16:09 #14
Prøv med vbCRlf

Fx  "Du har indtastet en forkert værdi " & varX & vbCrlf & " Det rigtige skal være et tal"
Avatar billede krasmussen Praktikant
20. november 2003 - 16:27 #15
Den vil ikke helt
MsgBox "Du SKAL indtaste et tal. Du skrev : " & vMinVærdi & vbCrLf & vbCrLf

Linieskiftet skal være efter punktum
Avatar billede jkrons Professor
20. november 2003 - 16:29 #16
Msgbox "Du SKAL indtaste et tal." & vbCrlf & "Du skrev: " 6 vMinværdi
Avatar billede jkrons Professor
20. november 2003 - 16:29 #17
& ikke 6.
Avatar billede krasmussen Praktikant
20. november 2003 - 16:40 #18
Perfekt - takker igen!.
Avatar billede jkrons Professor
20. november 2003 - 16:41 #19
Velbekomme!
Avatar billede mugs Novice
20. november 2003 - 16:48 #20
Vedr. linieskift i MsgBox, har jeg gjort den erfaring, at vbNewline altid fungerer i.s.f vbCrlf og Chr(13).
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