Ms access 按特定顺序处理记录
我有两张桌子。一是我们需要发货的订单。在其他字段中有发货日期、零件号和所需数量以及订单。第二个表包含从供应商订购的零件。它有采购订单、数量和零件号 我需要能够以特定的顺序在VBA中处理订单表。它需要先按发货日期、最早日期、然后按订单号进行排序。我有下面的代码,它将采购订单添加到订单表中,这样我就可以看到我需要的项目在哪些采购订单上。问题是代码没有考虑到我希望处理它的顺序。我开始明白表格不是电子表格,订单也不是我能保证的 我需要做什么才能按照指定的顺序处理此问题。我在下面包含了我的代码,除了不按要求的顺序处理外,它工作正常Ms access 按特定顺序处理记录,ms-access,vba,Ms Access,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查询设计器中将您的选择作为新查询进行测试。如果其结果集是可编辑的,则基于该选择的记录集也应是可编辑的。