In een eerder draadje vond ik onderstaande code, die ik in mijn database heb proberen toe te passen. Het grappige is dat de code doet wat hij moet doen als je een record in probeert te vullen dat al bestaat, maar dat er een foutmelding komt op het moment dat je een nog niet bestaand record wilt toevoegen, terwijl dat toch in de meeste gevallen dient te gebeuren. Dan volgt de melding 3001, ongeldig argument. Geen idee hoe dat komt, maar iets gaat er niet goed. Wie heeft een idee? Ik gebruik Access 2007-2010. Bijkomend is ook nog dat ik in tegenstelling tot de vraagsteller uit het eerdere draadje niet in de hele database wil zoeken naar 'dubbele' vermeldingen, maar alleen in het veld dat hier met tVeldNaam staat aangegeven. In mijn database heb ik mijn eigen veldnaam gebruikt maar dat doet aan de vraag niet af, ik heb nu maar even dat voorbeeld overgenomen. Daarvoor moet waarschijnlijk .Fields worden aangepast, maar hoe?
Code:
Private Sub tVeldNaam_AfterUpdate()
If fZoekOp(Me!tVeldNaam) Then
MsgBox "die waarde komt al voor"
End If
End Sub
Function fZoekOp(s As String) As Boolean
Dim fld As Object
With CurrentDb.OpenRecordset("MijnTabel")
While Not .EOF And Not fZoekOp
For Each fld In .Fields
If fld.Value = s Then
fZoekOp = True
Exit For
End If
Next
.MoveNext
Wend
End With
End Function