Invoer Controleren

Status
Niet open voor verdere reacties.

bubani

Gebruiker
Lid geworden
8 nov 2004
Berichten
13
Hallo allemaal,

Ik ben bezig een Hardware-database te maken om een heleboel computers te registreren. Hier bij ook alles wat in de computers zit, waarbij ook de Netwerkkaarten horen. Nu hoort er bij elke netwerkkaart natuurlijk een MAC-adres, en het is van groot belang dat deze goed wordt ingevuld :). Voor degene die het (nog)niet weten/zijn vergeten een MAC adres bestaat uit de cijfers 0 tot 9 en de letters A-F in de volgende combinatie:

xx-xx-xx-xx-xx-xx --> x is een van de mogelijke characters.

Nu wil ik weten hoe ik de invoer door middel van Visual Basic kan controleren. dus als de invoer fout is moet er een msgbox komen. kan iemand mij helpen
 
Er zijn 2 mogelijkheden waarop je de gegevens kunt invoeren:

1) Je gebruikt 6 Text-boxes. Tussen deze boxes plaats je een label-control dat een
streepje moet gaan voorstellen. je hoeft dan alleen nog
maar de gegevens 0-9/A-F in te voeren. De 6
ingevoerde gegevens mag je tot één string maken om
vervolgens naar de geldigheid van invoer te
onderzoeken. Je kunt ook steeds per invoervak naar de
geldigheid controleren.

2) Je gebruikt slechts één invoervak en in dat invoervak
wordt dan de reeks karakters van het MAC-adres xx-xx-
xx-xx-xx-xx ingevoerd. Vervolgens wordt naar de
geldigheid van invoer onderzocht, maar dit is niet de
makkelijkste weg.

Mijn voorbeeld code hieronder gaat zoals beschreven
onder punt 1, maar dan wordt het per invoervak
gecontroleerd.

Code:
Private Sub Form_Load()
   For TellerBoxes = 0 To 5
      Text1(TellerBoxes).Text = ""
   Next TellerBoxes
End Sub

Code:
Private Sub Command1_Click()
   For TellerBoxes = 0 To 5
      If Len(Text1(TellerBoxes).Text) <> 2 Then
         MsgBox "Een Text-Box moet 2 karakters bevatten"
         Exit Sub
         Else
         Select Case UCase(Left(Text1(TellerBoxes).Text, 1))
            Case 0 To 9, "A", "B", "C", "D", "E", "F"
               Select Case UCase(Right(Text1(TellerBoxes).Text, 1))
                  Case 0 To 9, "A", "B", "C", "D", "E", "F"
                  Case Else
                    MsgBox "Een Text-Box moet 0-9/A-F bevatten" & "(" & "Text-box nummer: " & TellerBoxes + 1 & ")"
                    Exit Sub
               End Select
            Case Else
               MsgBox "Een Text-Box moet 0-9/A-F bevatten" & "(" & "Text-box nummer: " & TellerBoxes + 1 & ")"
               Exit Sub
         End Select
      End If
      Next TellerBoxes
      MsgBox "Je hebt een geldig Mac-adres ingevoerd."
End Sub

Nog verdere aanwijzingen:
1) De code in Form_Load zorgt ervoor, dat alle 6 Text-boxen worden opgeschoond tijdens het runnen
v.h. programma. Je kunt dit eventueel ook bij de
properties doen.
2) Het declareren van de variabele TellerBoxes is niet
verplicht, omdat de gereserveerde ruimte onder de 11
blijft.
3) Per invoervak moet de lengte van 2 hebben, dit stel
je in bij de properties van de Text-boxes bijmag
maxlength, dus maxlength is 2.
4) Ik hoop verder, dat je weet hoe je van één Text-box een array kunt maken. Zo'n array is belangrijk
om een programma heel kort maar doeltreffend te
kunnen maken. (Ik heb in één lus alles verwerkt)

Dennis.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan