• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Controle over het invullen van Gebruikersformulier

Status
Niet open voor verdere reacties.

jogomsk

Gebruiker
Lid geworden
14 nov 2014
Berichten
10
Beste forumleden,
Bij het invullen van het Invulformulier had ik graag controle gehad over wat niet en wat wel verplicht moet worden ingevuld en de wijze waarop sommige items aan bepaalde waardes moeten voldoen.
Ik heb dit als opmerking bij de Formuliercode gevoegd.
Ik kom er niet achter waar ik het stuk controleprogramma moet invoeren en wat ik moet invoeren want deze controle zou onmiddellijk nadat een bepaalde regel is ingevuld moeten gebeuren en niet bij het wegschrijven van alle data naar “Klanten”.
Kan mij iemand aub op weg helpen.
Op de wijze die ik nu in programmavorm heb gegoten werkt alles zoals het hoort (nieuwe sorteringen enz…), enkel de controles op de input ontbreken.
Met oprechte dank
John
 

Bijlagen

  • Personeel.xlsm
    61,1 KB · Weergaven: 48
Dit is een voorbeeldje voor het verlaten van het veld Klantnummer. Als het ingevulde nummer kleiner is dan 1000 volgt er een melding en wordt het veld niet verlaten. Met dat idee zou je de controle voor alle velden kunnen doen.

Code:
'In het formulier
Private Sub txtNummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = Not CheckFieldContent("txtNummer")
End Sub

'In een module
Function CheckFieldContent(Veld As String) As Boolean
    Select Case Veld
        Case "txtNummer"
            On Local Error Resume Next
            If CInt(frmKlantGegevens.txtNummer.Text) < 1000 Then
                MsgBox "Nummer onjuist"
                CheckFieldContent = False
            Else
                CheckFieldContent = True
            End If
            On Local Error GoTo 0
    End Select
End Function

De functie CheckFieldContent plaats je in een module en kun je dan ook per veld weer gebruiken bij het sluiten en/of opslaan.
 
Laatst bewerkt:
Ik dacht aan zoiets.
Code:
Dim strNummer As Integer       'X
Dim strAanspreking As String
Dim strNaam As String          'X
Dim strAdres As String         'X
Dim strPostcode As String      'X
Dim strPlaats As String        'X
Dim strBTW As String
Dim strKorting As Double       'X
Dim strTel As String
Dim strFax As String
'========================================================
Dim ct
ct = Array(txtNummer, txtNaam, txtAdres, txtPostcode, txtPlaats, txtKorting)
    For i = 0 To UBound(ct)
      If ct(i) = vbNullString Then
        MsgBox "Invulveld """ & Replace(ct(i).Name, "txt", "") & """ verplicht", , "Let op!"
         ct(i).SetFocus
        Exit Sub
      End If
    Next
 '========================================================
    Me.txtNummer.SetFocus
 
Test deze eens.
 

Bijlagen

  • Personeel.xlsm
    59,5 KB · Weergaven: 49
Warme Bakkertje,
Dank voor de reactie.
Routine loopt echter vast op regel 18

John
 
HSV en Edmoor,
Eveneens dank aan jullie. Ik ga straks beide voorbeelden eens trachten in te brengen en hou jullie op de hoogte.
John
 
Warm Bakkerje,
Sorry, de tweede keer dat ik de test deed liep alles normaal. Zoek dus niet waar het fout loopt... het zal wel aan mij gelegen hebben.
Hartelijk dank voor de moeite.
John
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan