答案 0 :(得分:0)
假设您的表不不包含主键字段,可以使用域聚集函数对记录进行排序,那么一种可能的方法是在VBA中使用静态变量。
将以下基本代码复制到新模块中:
Function Occurrence(Optional strVal As String) As Long
Static lngTmp As Long
Static strTmp As String
If strTmp = strVal Then
lngTmp = lngTmp + 1
Else
lngTmp = 1
strTmp = strVal
End If
Occurrence = lngTmp
End Function
在MS Access中,使用以下SQL创建新查询,将YourTable
更改为表名:
update (select t.layout_desc from YourTable as t order by t.layout_desc) q
set q.layout_desc = q.layout_desc & occurrence(q.layout_desc)
如果您的表包含Long Integer数据类型的主键(例如id
),则可以通过以下方式使用域聚合函数DCount
:
update YourTable t
set t.layout_desc = t.layout_desc &
dcount("*","YourTable","layout_desc = '" & t.layout_desc & "' and id <= " & t.id)