Buongiorno a tutti.
Nel mio database ho una maschera continua che si basa su una select query operante su più tabelle in relazione uno a molti.
Ho bisogno di avere un campo identificante univoco per ogni record e non potendo utilizzare uno degli ID delle tabelle (che non sono univoci nel risultato della query) ho creato un campo nella maschera con origine
=GetRecNum()
che va a creare una numerazione progressiva dei record nella maschera, facendo riferimento a questa funzione:
Public Function GetRecNum() As Long
On Error GoTo erh
With CodeContextObject.RecordsetClone
If Not (.BOF And .EOF) Then
.Bookmark = CodeContextObject.Bookmark
GetRecNum = .AbsolutePosition + 1
End If
End With
ext:
Exit Function
erh:
GetRecNum = 0
End Function
La cosa funziona bene ma mi si presenta un problema.
Se aggiungo un record al recordset della maschera e poi faccio un requery della maschera stessa, il campo contatore di tutti i record assume valore 0.
Non riesco bene a capire l'origine del problema.
Magari esiste un modo più diretto per identificare univocamente il record senza avvalersi della funzione?