Ms access 按特定顺序处理记录

Ms access 按特定顺序处理记录,ms-access,vba,Ms Access,Vba,我有两张桌子。一是我们需要发货的订单。在其他字段中有发货日期、零件号和所需数量以及订单。第二个表包含从供应商订购的零件。它有采购订单、数量和零件号 我需要能够以特定的顺序在VBA中处理订单表。它需要先按发货日期、最早日期、然后按订单号进行排序。我有下面的代码,它将采购订单添加到订单表中,这样我就可以看到我需要的项目在哪些采购订单上。问题是代码没有考虑到我希望处理它的顺序。我开始明白表格不是电子表格,订单也不是我能保证的 我需要做什么才能按照指定的顺序处理此问题。我在下面包含了我的代码,除了不按要

我有两张桌子。一是我们需要发货的订单。在其他字段中有发货日期、零件号和所需数量以及订单。第二个表包含从供应商订购的零件。它有采购订单、数量和零件号

我需要能够以特定的顺序在VBA中处理订单表。它需要先按发货日期、最早日期、然后按订单号进行排序。我有下面的代码,它将采购订单添加到订单表中,这样我就可以看到我需要的项目在哪些采购订单上。问题是代码没有考虑到我希望处理它的顺序。我开始明白表格不是电子表格,订单也不是我能保证的

我需要做什么才能按照指定的顺序处理此问题。我在下面包含了我的代码,除了不按要求的顺序处理外,它工作正常

Public Sub Magic()

Dim SOQi As Integer
Dim POQi As Integer
Dim PONi As Long

Dim db As Database
Dim SOrs As Recordset
Dim POrs As Recordset2

Set db = CurrentDb
Set SOrs = db.OpenRecordset("T_openorders")
Set POrs = db.OpenRecordset("T_InboundPO")

SOrs.MoveFirst
Do Until SOrs.EOF
    If SOrs.Fields("missing") < 0 Then
    POrs.MoveFirst
        Do Until POrs.EOF
           SOQi = SOrs.Fields("missing")
                If POrs.Fields("OrderQty") > 0 Then
                        POQi = POrs.Fields("OrderQty")
                        If POrs.Fields("PartNum") = SOrs.Fields("PartNum") Then
                            If Abs(POQi) > Abs(SOQi) Then
                                POQi = POQi + SOQi
                                PONi = POrs.Fields("PONUM")
                                POrs.Edit
                                POrs("OrderQty") = POQi
                                POrs.Update
                                SOrs.Edit
                                SOrs("PONum") = PONi
                                SOrs("missing") = 0
                                SOrs.Update
                             Else
                                SOQi = POQi + SOQi
                                PONi = POrs.Fields("PONUM")
                                POrs.Edit
                                POrs("OrderQty") = 0
                                POrs.Update
                                SOrs.Edit
                                SOrs("PONum") = PONi
                                SOrs("missing") = SOQi
                                SOrs.Update
                            End If
                        End If
                    End If
            POrs.MoveNext
        Loop
    End If
SOrs.MoveNext
Loop



SOrs.Close

Set SOrs = Nothing
Set POrs = Nothing
db.Close

End Sub
使用SELECT查询作为记录集的数据源。在查询中,可以包含ORDERBY子句,记录将按该顺序加载到记录集中

我忘了你的表名和字段名,所以我自己编了一个

dimdb作为数据库 Dim rs作为DAO.Recordset Dim strSelect As字符串 strSelect=从表中选择y.*作为y&vbCrLf&_ y[发货日期]下的订单,y[订单号]; 调试。打印strSelect Set db=CurrentDb 设置rs=db.OpenRecordsetstrSelect '循环记录集行以确认 '数据以正确的顺序出现。。。 做而不做 调试。打印rs![按日期发货],rs![订单号] 下一个 环
在执行此操作时,我是否仍然能够使用正在处理的数据更新实际表?在Access查询设计器中将您的选择作为新查询进行测试。如果其结果集是可编辑的,则基于该选择的记录集也应是可编辑的。