Avatar billede JZA Nybegynder
21. august 2012 - 11:54 Der er 4 kommentarer og
1 løsning

Validering af input i textbox (userform)

Hej Eksperter

Jeg har nu arbejdet en del med at finde en brugbar løsning på validering af input i flere textbokse med ens type indhold.
Min store udfordring er at jeg ikke ønsker at trykke på en godkendelses knap hver gang jeg springer fra felt til felt.
Jeg vil gerne have det til at virke sådan, at jeg taster værdien og i det øjeblik man hopper videre til den næste indtastning, så udføres kontrollen af indholdet. Hvis indholdet ikke er rigtigt blankes feltet af og brugeren bliver bedt om at taste en ny værdi. Valideringen af feltet er at der skal være en numerisk værdi og den skal være i intervallet 8000 til 50000 og der kan kun tastes i hele 1000 i intervallet 8000 til 20000 og herefter må der kun tastes i hele 2000 i intervallet 20000 til 50000.
Avatar billede claes57 Ekspert
21. august 2012 - 13:34 #1
hvis nu man er i et felt, og helt vil droppe at udfylde siden - så vil man ikke kunne forlade det, da felt skal udfyldes, og hvis man gør det, så låses cursor i det næste felt.
Du kan lave en validering, men du skal også acceptere tomt felt, så bruger har mulighed for at klikke på en 'fortryd/exit' knap.
Avatar billede JZA Nybegynder
21. august 2012 - 13:44 #2
Ja. Den havde jeg ikke lige tænkt på, men du har naturligvis ret. Jeg forestiller mig i den sammenhæng at der er en cancle/exit knap, så man kan forlade indtastningen. Det er den eneste sammenhæng jeg kan acceptere et tomt felt eller forkert dataindtastning. I alle andre sammenhænge skal data udfyldes før man kan komme til det efterfølgende felt/indtastning.
Avatar billede tjp Mester
21. august 2012 - 14:27 #3
Til inspiration:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If IsNumeric(TextBox1.Text) Then
      If TextBox1.Text < 10 Then
        Cancel = True
        With TextBox1
            .SelText = "Større end 10, tak"
            .SetFocus
            .SelStart = 0
            .SelLength = Len(.Text)
        End With
      End If
  Else
      Cancel = True
      With TextBox1
        .SelText = "Skriv et tal, tak"
        .SetFocus
        .SelStart = 0
        .SelLength = Len(.Text)
      End With
  End If
End Sub
Avatar billede claes57 Ekspert
21. august 2012 - 14:37 #4
så laver du en validering på felter
Private Sub Text1_LostFocus()
' korrekt tal eller tom
End Sub

og en 'fortryd' tast, der forlader formen,
og en 'næste' tast, der lige tjekker, at ingen felter er tomme (hvis der er tal i, så er det jo testet korrekt)
Avatar billede JZA Nybegynder
17. september 2012 - 16:22 #5
Hej

Tak for inspiration fra tjp. TextBox_Exit var god inspiration.
Jeg har set en del på det jeg har fra claes57, men jeg har desværre ikke kunnet bruge det til noget. måske fordi jeg ikke helt har forstået det, men jeg fik det ikke til at give resultat.
Jeg har nu lavet programmet og fået det til at virke efter hensigten. måske ikke på optimal vis, men det virker.

Tak for input.
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
Kurser inden for grundlæggende programmering

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