MS访问字段中每个值的数字

发布于 2025-01-20 19:51:19 字数 1121 浏览 3 评论 0原文

PO_D_TEMP包含几个字段2,其中2个是[Invno]和[lidet_line]。将有许多属于相同[Invno]的行。我希望每个[lidet_line]以1、2等开始,每个[Invno]

示例:[Invno] 1 [lidet_line] 1 [Invno] 1 [getital_line] 2 [Invno] 2 [getital_line] 1 [Invno] 3 [Invno] 3 [ lidet_line] 1等!

我所能弄清的只是一个循环,它为所有记录增加了一个增量数字 - 在每个不同的Invno上都不会重新编号。

这是我拥有的(我在幼儿园级别,对不起):

    Private Sub Command1_Click()

    Dim db As Database
    Set db = CurrentDb()

    Dim rstPO_D_Temp As Recordset
    Dim strSQL As String
    Dim intI As Integer
    Dim DetailNum As Integer

    'Open a recordset on all records from the PO_D_Temp table
       strSQL = "SELECT * FROM PO_D_Temp"
       Set rstPO_D_Temp = db.OpenRecordset(strSQL, dbOpenDynaset)
       DetailNum = 0

    '   If the recordset is empty, exit.
       If rstPO_D_Temp.EOF Then Exit Sub

       intI = 1
       With rstPO_D_Temp
          Do Until .EOF
             .Edit
             ![Detail_Line] = DetailNum + intI
             .Update
             .MoveNext
             intI = intI + 1
          Loop
       End With

       rstPO_D_Temp.Close
       Set rstPO_D_Temp = Nothing

    End Sub

PO_D_Temp contains several fields 2 of which are [InvNo] and [Detail_Line].There will be many rows that belong with same [InvNo]. I would like each [Detail_Line] to begin with 1, 2 etc for each [InvNo]

Example: [InvNo]1 [Detail_Line] 1 [InvNo]1 [Detail_Line] 2 [InvNo]2 [Detail_Line] 1 [InvNo]3 [Detail_Line] 1 ETC!

All I have been able to figure out is a loop that adds an incrementing number to ALL records - not renumbering at each different InvNo.

Here is what I have (I am at kindergarten level, sorry):

    Private Sub Command1_Click()

    Dim db As Database
    Set db = CurrentDb()

    Dim rstPO_D_Temp As Recordset
    Dim strSQL As String
    Dim intI As Integer
    Dim DetailNum As Integer

    'Open a recordset on all records from the PO_D_Temp table
       strSQL = "SELECT * FROM PO_D_Temp"
       Set rstPO_D_Temp = db.OpenRecordset(strSQL, dbOpenDynaset)
       DetailNum = 0

    '   If the recordset is empty, exit.
       If rstPO_D_Temp.EOF Then Exit Sub

       intI = 1
       With rstPO_D_Temp
          Do Until .EOF
             .Edit
             ![Detail_Line] = DetailNum + intI
             .Update
             .MoveNext
             intI = intI + 1
          Loop
       End With

       rstPO_D_Temp.Close
       Set rstPO_D_Temp = Nothing

    End Sub

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心的憧憬 2025-01-27 19:51:19

重置详细编号对于每张发票号码:

Private Sub Command1_Click()

    Dim db As DAO.Database
    Set db = CurrentDb()

    Dim rstPO_D_Temp As DAO.Recordset
    Dim strSQL As String
    Dim DetailNum As Integer
    Dim LastInvoice As Long

    'Open a recordset on all records from the PO_D_Temp table
    strSQL = "SELECT * FROM PO_D_Temp"
    Set rstPO_D_Temp = db.OpenRecordset(strSQL, dbOpenDynaset)

    With rstPO_D_Temp
        Do Until .EOF
            If LastInvoice <> !InvNo.Value Then
                DetailNum = 1
                LastInvoice = !InvNo.Value
            Else
                DetailNum = DetailNum + 1
            End If
            .Edit
            ![Detail_Line].Value = DetailNum
            .Update
            .MoveNext
        Loop
        .Close
    End With

    Set rstPO_D_Temp = Nothing

End Sub

Reset the detail no. for each invoice no.:

Private Sub Command1_Click()

    Dim db As DAO.Database
    Set db = CurrentDb()

    Dim rstPO_D_Temp As DAO.Recordset
    Dim strSQL As String
    Dim DetailNum As Integer
    Dim LastInvoice As Long

    'Open a recordset on all records from the PO_D_Temp table
    strSQL = "SELECT * FROM PO_D_Temp"
    Set rstPO_D_Temp = db.OpenRecordset(strSQL, dbOpenDynaset)

    With rstPO_D_Temp
        Do Until .EOF
            If LastInvoice <> !InvNo.Value Then
                DetailNum = 1
                LastInvoice = !InvNo.Value
            Else
                DetailNum = DetailNum + 1
            End If
            .Edit
            ![Detail_Line].Value = DetailNum
            .Update
            .MoveNext
        Loop
        .Close
    End With

    Set rstPO_D_Temp = Nothing

End Sub
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文