我在做进销存,希望在保存进货记录时能按"可累计"或"不可累计"分别修改库存,代码如下:
现在"不可累计"的正常增加了新库存记录,"可累计"或库存为0的没有按理想的修改库存记录,也没增加新记录.
Private Sub 保存_Click()
On Error GoTo Err_保存_Click
'定义保存商品库存记录是否已经存在的布尔变量
Dim BlnExist As Boolean
'定义字符型变量
Dim STemp As String
'定义数据集变量
Dim rs As ADODB.Recordset
'为定义的数据集变量分配空间
Set rs = New ADODB.Recordset
'为打开数据表“查询语句”字符变量赋值
STemp = "Select * From 库存资料"
'打开“库存资料”数据表
rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'更新商品的库存信息
BlnExist = False '为BlnExist变量赋初值
'判断商品库存记录是否已经存在
rs.MoveFirst '把记录集指针移到第一记录
For i = 1 To rs.RecordCount
'判断商品库存记录是否已经存在
If rs("商品ID") = Me![商品ID] Then
'如果存在,则判断是否可以累计
If (rs("累计") = yes) Or (rs("库存数量") = 0) Then
'如果可以累计,则增加库存数量
rs("库存数量") = rs("库存数量") + Me![数量]
BlnExist = True '把BlnExist变量值设置为“真”
Exit For '退出For…Next循环语句
Else '不可以累计,则添加新记录
rs.AddNew
rs("商品ID") = Me![商品ID]
rs("厂家编号") = Me![厂家编号]
rs("进货ID") = Me![进货ID]
rs("仓库") = Me![仓库]
rs("库存数量") = Me![数量]
rs("累计") = Me![累计]
rs("备注") = Me![备注]
rs.Update '刷新记录集
BlnExist = True '把BlnExist变量值设置为“真”
Exit For '退出For…Next循环语句
End If
Else '如果商品库存记录不存在
rs.MoveNext '把记录指针移到下一条记录
End If
Next
'判断商品库存记录是否已经存在
If BlnExist = False Then
'如果商品库存记录不存在,则添加新记录
rs.AddNew
rs("商品ID") = Me![商品ID]
rs("厂家编号") = Me![厂家编号]
rs("进货ID") = Me![进货ID]
rs("仓库") = Me![仓库]
rs("库存数量") = Me![数量]
rs("累计") = Me![累计]
rs("备注") = Me![备注]
rs.Update '刷新记录集
BlnExist = True '把BlnExist变量值设置为“真”
End If
'释放系统为Rs数据集分配的空间
Set rs = Nothing
Exit_保存_Click:
Exit Sub
Err_保存_Click:
MsgBox Err.Description
Resume Exit_保存_Click
End Sub
[此贴子已经被作者于2006-11-17 16:04:55编辑过]
|