Lay-out

Code
| Private Sub Rek_nr_BeforeUpdate(Cancel As
Integer) Dim mnummer As String, mteken As String * 1 Dim mteller As Integer Dim mdeeltal, mcontrolegetal, mrest, mquotient 'controle rekeningnummer If Not IsNull(Rek_nr) Then 'cijfers groeperen mnummer = "" For mteller = 1 To Len(Rek_nr) mteken = Mid(Rek_nr, mteller, 1) If mteken >= "0" And mteken <= "9" Then mnummer = mnummer & mteken End If Next mteller 'controle op aantal cijfers If Len(mnummer) <> 12 Then GoTo fout Else 'controle nummer mdeeltal = Val(Left(mnummer, 10)) mcontrolegetal = Val(Right(mnummer, 2)) mquotient = Int(mdeeltal / 97) mrest = mdeeltal - mquotient * 97 If mrest <> mcontrolegetal Then GoTo fout End If End If End If Exit Sub fout: MsgBox "Foutief rekeningnummer!", vbExclamation Cancel = True End Sub |
Vooraleer de invoer op te slaan (BeforeUpdate) wordt
deze gebeurtenisprocedure uitgevoerd.
Vooreerst testen we of er iets werd ingevoerd. Het rekeningnummer is geen vereist gegeven! De controle gaat dus slechts verder indien er een invoer is. We halen de cijfers uit de invoer.
Vervolgens controleren we het aantal cijfers.
Tenslotte passen we het algoritme toe dat de juistheid van een rekeningnummer test.
Met Exit Sub wordt de gebeurtenisprocedure verlaten. In geval van fout wordt de subprocedure "fout" uitgevoerd. Hierin verschijnt de foutmelding en blijft de schermcursor op het tekstvakobject van het rekeningnummer staan. |