Vba 序列号
我有一个访问表,其值类似于Vba 序列号,vba,Vba,我有一个访问表,其值类似于XX-033inRF6005 此唯一字符串需要一个与之连接的序列号,如XX-033inRF6005001 序列号应为: 用XX-033inRF6005001命名前两条记录 第三条记录为XX-033inRF6005002 第四个asXX-033inRF6005002 第五个asXX-033inRF6005003 第六个asXX-033inRF6005003 等等 如何在VBA中实现这一点。有什么线索吗?我对访问知之甚少,但这方面的基本知识应该是 for i
XX-033inRF6005
此唯一字符串需要一个与之连接的序列号,如
XX-033inRF6005001
序列号应为:
- 用
命名前两条记录XX-033inRF6005001
- 第三条记录为
XX-033inRF6005002
- 第四个as
XX-033inRF6005002
- 第五个as
XX-033inRF6005003
- 第六个as
等等XX-033inRF6005003
如何在VBA中实现这一点。有什么线索吗?我对访问知之甚少,但这方面的基本知识应该是
for i = 2 to 2 * LastSequencenumber
x(i) = "XX-033inRF6005" & format(int(i/2),"000")
next i
当然,您可以以某种方式读取表中的值,但我不知道如何在access中执行此操作。我不知道它和标识的顺序对于我的编程意味着什么,因此这里有一种快速而肮脏的方法将数字序列添加到表中的记录中。符合条件的每两个记录都会将当前的
cntr
值作为三位数添加到其中
这将只处理XX-033inRF6005
,因为您没有说明要对其他号码做什么-重新启动该号码,忽略它们,继续,就像它们是相同的号码一样
需要在下面的代码中更新表和字段的名称
Public Sub AddNumbering()
Dim qdf As DAO.QueryDef
Dim rst As DAO.Recordset
Dim cntr As Long
Set qdf = CurrentDb.CreateQueryDef("", _
"SELECT Field_1 FROM Table1 WHERE Field_1 = 'XX-033inRF6005'")
Set rst = qdf.OpenRecordset
cntr = 1
With rst
If Not (.BOF And .EOF) Then
.MoveFirst
Do While Not .EOF
.Edit
'Format(cntr,"000") ensures the number is 3 digits long - 001, 002, etc.
!Field_1 = !Field_1 & Format(cntr, "000")
.Update
.MoveNext
If Not .EOF Then
.Edit
!Field_1 = !Field_1 & Format(cntr, "000")
.Update
.MoveNext
End If
cntr = cntr + 1
Loop
End If
.Close
qdf.Close
End With
Set rst = Nothing
Set qdf = Nothing
End Sub
您如何决定记录顺序?记录顺序可以是任意顺序。仅基于唯一性,它需要添加序列号。在您给出的示例中,我看不到任何唯一性-所有六条记录都是
XX-033inRF6005
。那个值有变化吗?你们已经把值放在这里了,我想是的?如果主值发生变化,数字序列是否会重新开始?Hi使用相同的字符串“XX-033inRF6005”。报告至少有1000个条目。所以,我需要对它排序,并为我的程序识别系统如何知道“最后的序列号”。请告知这取决于您的需要,如果XX-033inRF6005012
是最后一个,则为12。我只是演示了如何以想要的格式连接数字。你需要计算出它应该算多少,然后把它放进去。