【发布时间】:2019-08-01 20:45:50
【问题描述】:
【问题讨论】:
-
你的表有主键字段吗?
标签: sql ms-access vba ms-access-2016
【问题讨论】:
标签: sql ms-access vba ms-access-2016
假设您的表不包含使用域聚合函数对记录进行排序的主键字段,一种可能的方法是在 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)
如果您的表要包含长整数数据类型的主键,例如 id,您可以按以下方式使用域聚合函数 DCount:
update YourTable t
set t.layout_desc = t.layout_desc &
dcount("*","YourTable","layout_desc = '" & t.layout_desc & "' and id <= " & t.id)
【讨论】: