设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1784|回复: 10
打印 上一主题 下一主题

[其它] 高手帮我看看错在哪里

[复制链接]
跳转到指定楼层
1#
发表于 2006-11-17 22:50:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在做进销存,希望在保存进货记录时能按"可累计"或"不可累计"分别修改库存,代码如下:

现在"不可累计"的正常增加了新库存记录,"可累计"或库存为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编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2006-11-17 23:04:00 | 只看该作者
修改了一下,还是有问题,为什么和第1条记录相同的商品就不能保存呢?

[此贴子已经被作者于2006-11-17 16:06:31编辑过]

3#
发表于 2006-11-18 03:12:00 | 只看该作者
附上例子是否更能说明问题呢?
4#
 楼主| 发表于 2006-11-18 17:50:00 | 只看该作者
以下是引用fan0217在2006-11-17 19:12:00的发言:
附上例子是否更能说明问题呢?

需要什么样的例子呢?

上面是进货入库"保存"按纽的代码.
5#
发表于 2006-11-18 20:19:00 | 只看该作者
把这句改为 For i = 0 To rs.RecordCount-1呢


6#
发表于 2006-11-18 20:23:00 | 只看该作者
这句好像也有点问题
7#
发表于 2006-11-18 20:28:00 | 只看该作者
你把你的例子传上来,方便调试。

你让大家在这使隔山打牛的功夫啊!
8#
发表于 2006-11-19 07:24:00 | 只看该作者
你的这个窗体是单一窗体吧,如果是单一窗体就没有这么复杂,你的意思不知是不是如果有记录就库存相加,如果没有记录就添加记录,请先回复
9#
 楼主| 发表于 2006-11-20 02:13:00 | 只看该作者
由于我在表中添加了许多图片,数据库变得很大,不便上传,请大家原谅.

这是个"保存"按纽的指令,应该很简单的,不知道出了什么问题,现在我发现如下删除全部循环也不能实现记录的修改:


'定义数据集变量
Dim rs As ADODB.Recordset
'为定义的数据集变量分配空间
Set rs = New ADODB.Recordset
'为打开数据表“查询语句”字符变量赋值
STemp = "Select * From 库存资料"
'打开“库存资料”数据表
rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
         
            rs.MoveFirst    '把记录集指针移到第一记录
                      rs("库存数量") = rs("库存数量") + Me![数量]

    '释放系统为Rs数据集分配的空间
    Set rs = Nothing
   
Exit_保存_Click:
    Exit Sub

Err_保存_Click:
    MsgBox Err.Description
    Resume Exit_保存_Click
   
End Sub
10#
发表于 2006-11-20 03:33:00 | 只看该作者
哈哈哈,有意思.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-5 15:52 , Processed in 0.095207 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表