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。我只是演示了如何以想要的格式连接数字。你需要计算出它应该算多少,然后把它放进去。