Eigen foutmelding

Access genereert vaak foutmeldingen die voor een gebruiker niet te begrijpen zijn. Als je bijvoorbeeld in een sleutelveld een reeds bestaande waarde invoert, is de foutmelding die Access dan geeft niet voor iedereen even duidelijk.

In het voorbeeld ga ik uit van een tabel Order met als sleutel een Ordernummer. De gebruiker moet dat nummer zelf invoeren.

Om te zorgen dat een nette foutmelding volgt bij het invoeren van een dubbel ordernummer via een formulier, maken we een gebeurtenis 'voor bijwerken' (BeforeUpdate) op het veld Ordernummer. De gebeurtenis ziet er zo uit:

Private Sub Ordernummer_BeforeUpdate(Cancel As Integer)
If DLookup("Ordernummer", "Order", "Ordernummer=" & Me.Ordernummer) = Me.Ordernummer Then
   Cancel = True
   Me.Ordernummer.Undo
   MsgBox "Dit ordernummer bestaat al", vbExclamation, "Dubbel"
End If
End Sub

De gebeurtenis zorgt ervoor dat voordat het ordernummer daadwerkelijk wordt gewijzigd, een controle uitgevoerd wordt. Met de DLookup bepalen we of het ordernummer al in de tabel voorkomt. Als dat zo is wordt het wijzigen geannuleerd (Cancel =True) en zetten we de oorspronkelijke waarde terug (Undo). Bovendien krijgt de gebruiker een begrijpelijke foutmelding.

Op deze manier kan je allerlei soorten validaties uit voeren. Als je een validatie wilt maken die over meerdere velden gaat (als veld1 een 'A' bevat en veld2 een 'B', dan moet veld3 'C' of 'D' zijn), dan maak je een gebeurtenis 'voor bijwerken' (BeforeUpdate) op het betreffende formulier in plaats van op een bepaald veld.

Klik hier om de voorbeelddatabase te downloaden.