|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
代码如下:
Private Sub CmdCalculate_Click()
On Error GoTo Err_CMdCalculate_Click
'打开“MRP物料需求”表
Set Rs = New ADODB.Recordset
StrTemp = "Select * From MRP物料需求"
Rs.Open StrTemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'打开“主生产计划”表
Set Rs1 = New ADODB.Recordset
StrTemp = "Select * From 主生产计划"
Rs1.Open StrTemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'打开“物料清单”表
Set Rs2 = New ADODB.Recordset
StrTemp = "Select * From 物料清单"
Rs2.Open StrTemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'使【结果发布】按钮可用
Me![CmdGiveOutResult].Enabled = True
Rs2.MoveFirst
'在“物料清单”表中循环操作
For iTemp = 0 To Rs2.RecordCount - 1
Rs1.MoveFirst
'在“主生产计划”表中循环操作
For jTemp = 0 To Rs1.RecordCount - 1
'判断“产品编号”与“父项编号”是否相等
If (Rs2("父项编号") = Rs1("产品编号")) Then
'在“MRP物料需求”表中添加新记录
Rs.AddNew
Rs("物料编号") = Rs2("物料编号")
Rs("物料名称") = Rs2("物料名称")
Rs("年份") = Rs1("年份")
Rs("计划期") = Rs1("计划期")
'判断待添加物料记录是否已经存在
If MaterialNum = Rs("物料编号") Then
'如果存在,把以前的“预计库存”值赋予“期初库存”
Rs("期初库存") = BinStore
Else
'如果不存在,则赋予“期初库存为100
Rs("期初库存") = 100
End If
Rs("毛需求") = Rs2("需求数量") * Rs1("MPS数量")
If Rs("预计库存") - Rs("期初库存") >= 0 Then
Rs("预计入库") = Rs("预计库存") - Rs("期初库存")
Else
Rs("预计出库") = Rs("期初库存") - Rs("预计库存")
End If
If Rs("毛需求") - Rs("期初库存") > 0 Then
Rs("净需求") = Rs("毛需求") - Rs("期初库存")
Else
Rs("毛需求") = 0
End If
If (Rs("期初库存") - Rs("毛需求")) > 0 Then
Rs("预计库存") = Rs("期初库存") - Rs("毛需求")
Else
Rs("预计库存") = 0
End If
If Rs("毛需求") - Rs("预计库存") <= 0 Then
Rs("计划产出") = Rs("毛需求")
Else
Rs("计划产出") = 0
End If
Rs("计划投入") = Rs("净需求")
'为MaterialNum赋值,用于与下条记录比较,判断物料是否存在
MaterialNum = Rs("物料编号")
'把“预计库存”值赋予BinStore
BinStore = Rs("期初库存") - Rs("毛需求")
If BinStore <= 0 Then
BinStore = 0
End If
Rs1.MoveNext
'更新“MRP物料需求表”
Rs.Update
Next jTemp
Rs2.MoveNext
Next iTemp
'释放数据记录集空间
Set Rs = Nothing
Set Rs1 = Nothing
Set Rs2 = Nothing
'刷新“MRP计算结果发布(物料需求)”子窗体
MRPCResultSOFrm.Requery
Exit_CmdCalculate_Click:
Exit Sub
Err_CMdCalculate_Click:
MsgBox Err.Description
Resume Exit_CmdCalculate_Click
End Sub
运行调试的时候,提示 Next .....没有 FOr(就是在上面标示的字段位置)
|
|