编程技术文章分享与教程

网站首页 > 技术文章 正文

ACCESS如何批量删除已完成订单

hmc789 2024-11-19 04:59:22 技术文章 1 ℃

应用场景:

工作中我们经常从客户的系统中下载订单,但是由于时间的关系,我们货已发出,但是客户还未收到,所以这些在途的货物客户在其未交订单中并未删除,我们下载后这部分订单其实是已完成的,需要我们人工辨识这部分订单并加以删除,从而得到我们需要的未交订单。

设计思路:

我们首先先根据客户订单系统导出的数据设置【订单表】,然后根据我们出货的历史数据设置【出货明细表】。

例如我们设计订单表,字段信息(订单号,型号,交货日期,订单数量),实际工作中根据客户订单增加相关字段。同样我们设计已出货表样式,字段信息(出货日期,订单号,型号,交货日期,出货数量)。

在Access中新建订单表和已出货表,然后新建一个操作窗体,窗体上显示这2张表的子窗体:订单查询子窗体和已出货查询子窗体,在窗体顶部增加一个按钮,按钮命名为“删除已出货订单”,然后对按钮编写代码如下:

Private Sub 删除已完成订单_Click()

Dim i, j, k As Integer

Dim strTemp As String

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset

strTemp = "select * from 订单查询"

rs.Open strTemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic


Dim rs1 As ADODB.Recordset

Set rs1 = New ADODB.Recordset

strTemp = "select * from 已出货查询"

rs1.Open strTemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic


If rs.RecordCount <= 0 Then

Exit Sub

End If


rs.MoveFirst

For i = 1 To rs.RecordCount

rs1.MoveFirst

For j = 1 To rs1.RecordCount

If rs1("订单号") = rs("订单号") And rs1("型号") = rs("型号") And rs1("交货日期") = rs("交货日期") Then

rs("订单数量") = rs("订单数量") - rs1("出货数量")

rs.Update

Me.订单查询子窗体.Requery

rs1.MoveNext

Else

rs1.MoveNext

End If

Next j

rs.MoveNext

Next i


rs.MoveFirst

For k = 1 To rs.RecordCount

If rs("订单数量") = 0 Then

rs.Delete 1

rs.Update

Me.订单查询子窗体.Requery

rs.MoveNext

Else

rs.MoveNext

End If

Next k


MsgBox "完成!"


End Sub

这样我们就完成了相关的程序实际,工作中我们只要每次把下载好的订单导入到订单表中,按下“删除已出货订单”按钮,程序运行结束后剩下的记录就是我们需要的实际未交订单数据。

标签列表
最新留言