比较Access表中的值,如果匹配,则使它们唯一

我正在尝试在MS Access数据库中创build一个正确的唯一ID:

ID 123456 123456 123456 123457 123458 

显然, 123456是重复的,所以我想附加一个.1到最后,使上面现在看起来像这样:

 ID 123456 123456.1 123456.2 123457 123458 

我可以在Excel中使用以下操作:

 =IF(A2=A1,CONCATENATE(A1,".",COUNTIF(A1:A$3,A1)),A2) 

但我想不出如何在MS Access中做到这一点。

你可以使用VBA:

 Public Sub MakeUnique(sTableName As String, sFieldName As String) Dim sCurrentValue As String Dim lDuplicateCounter As Long With CurrentDb.OpenRecordset("SELECT [" & sFieldName & "] FROM [" & sTableName & "] ORDER BY [" & sFieldName & "];") If .BOF And .EOF Then MsgBox "No records found" Exit Sub End If Do Until .EOF If .Fields(0) <> sCurrentValue Then sCurrentValue = .Fields(0) lDuplicateCounter = 1 Else .Edit .Fields(0) = .Fields(0) & "." & lDuplicateCounter lDuplicateCounter = lDuplicateCounter + 1 .Update End If .MoveNext Loop .Close End With End Sub