设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] 求助andymark及各位大虾

[复制链接]
跳转到指定楼层
1#
发表于 2007-5-11 22:01:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
编制程序如下, 运行结果都显示正常, 可查询"入库记录"和"仓库信息"两个数据库, 并没有更新数据, 求教问题在哪里, 非常感谢!

Private Sub 商品入库_Click()
Dim sql As String
Dim rst As ADODB.Recordset
Dim number As Integer
sql = "Select * from 商品 where 商品编号 = '" & Me.商品编号 & "'"
Set rst = New ADODB.Recordset
rst.ActiveConnection = CurrentProject.Connection
rst.CursorType = adOpenDynamic
rst.LockType = adLockOptimistic
rst.Open sql
    If Not (rst.EOF) Then
        '添加入库记录
        sql = "select * from 入库记录"
        'rst.Close
        Set rst = Nothing
        Set rst = New ADODB.Recordset
        rst.ActiveConnection = CurrentProject.Connection
        rst.CursorType = adOpenKeyset
        rst.LockType = adLockBatchOptimistic
        rst.Open sql
            With rst
            .AddNew
            !编号 = Me![编号]
            !仓库编号 = Me![仓库编号]
            !入库日期 = Me![入库日期]
            !经手人 = Me![经手人]
            !商品编号 = Me![商品编号]
            !数量 = Me![数量]
            !采购价格 = Me![采购价格]
            !供应商编号 = Me![供应商编号]
            !备注 = Me![备注]
            End With
        rst.Close
        Set rst = Nothing
        '添加或者修改库存信息
        sql = "select * from 仓库信息 where 仓库编号 = " & Me![仓库编号] & " And 商品编号 = '" & Me![商品编号] & "'"
        Set rst = New ADODB.Recordset
        rst.ActiveConnection = CurrentProject.Connection
        rst.CursorType = adOpenDynamic
        rst.LockType = adLockOptimistic
        rst.Open sql
        If Not (rst.EOF) Then
            number = rst!当前库存数量
            number = number + Me![数量]
            rst!当前库存数量 = number
            rst.Close
            Set rst = Nothing
            sql = "当前库存数量为: " & number
            MsgBox sql
            Exit Sub
        Else
            With rst
                .AddNew
                !仓库编号 = Me![仓库编号]
                !商品编号 = Me![商品编号]
                !当前库存数量 = Me![数量]
            End With
            Exit Sub
            Me.Visible = False
        End If
    Else
        rst.Close
        Set rst = Nothing
        MsgBox "系统中没有该商品的信息, 请先添加商品详细信息"
        Exit Sub
        Me.Visible = False
    End If
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
18#
发表于 2007-5-19 00:16:00 | 只看该作者
把你的update语句用DEBUG.PRINT 打印出来,然后粘贴到一个新建的查询里面运行或者保存一下就知道哪里有问题了
17#
 楼主| 发表于 2007-5-17 00:55:00 | 只看该作者
Db_kc = "select * from 仓库信息 where 仓库编号 = " & Me![仓库编号] & " And 商品编号 = '" & Me![商品编号] & "'"
        Set Rs_kc = New ADODB.Recordset
        Rs_kc.ActiveConnection = CurrentProject.Connection
        Rs_kc.CursorType = adOpenDynamic
        Rs_kc.LockType = adLockOptimistic
        Rs_kc.Open Db_kc
        If Not (Rs_kc.EOF) Then
            number = Rs_kc!当前库存数量
            number = number + Me![数量]
            Rs_kc!当前库存数量 = number
            'Rs_kc.Close
            'Set Db_kc = Nothing
            Db_kc = "当前库存数量为: " & number
            MsgBox Db_kc
            
            Update 仓库信息 Set 仓库信息.当前库存数量 = " & number & " where 仓库编号 = " & Me![仓库编号] & " And 商品编号 = " & Me![商品编号] & "
            

            Exit Sub
        Else
            With Rs_kc
                .AddNew
                !仓库编号 = Me![仓库编号]
                !商品编号 = Me![商品编号]
                !当前库存数量 = Me![数量]
                .Update
            End With
            Exit Sub
            Me.Visible = False

还是不行,抱歉,麻烦再看看这段程序,主要是怎么更新当前库存数量。update语句好象不完整(显示缺少语句结束),不知道为什么。谢了
16#
发表于 2007-5-17 00:36:00 | 只看该作者


Update 仓库信息 Set 仓库信息.当前库存数量 = " & number & " where 仓库编号 = " & Me![仓库编号] & " And 商品编号 = " & Me![商品编号] & "
15#
 楼主| 发表于 2007-5-17 00:25:00 | 只看该作者
显示编译错误:

缺少语句结束。

14#
发表于 2007-5-17 00:09:00 | 只看该作者
try

Update 仓库信息.当前库存数量 Set 仓库信息.当前库存数量 = " & number & " where 仓库编号 = " & Me![仓库编号] & " And 商品编号 = " & Me![商品编号] & "
13#
 楼主| 发表于 2007-5-16 23:49:00 | 只看该作者
根据 Andymark的建议, 把2个Recordset分开处理, 问题解决, 非常感谢!



还有一个小问题:

If Not (Rs_kc.EOF) Then
            number = Rs_kc!当前库存数量
            number = number + Me![数量]
            Rs_kc!当前库存数量 = number
            Set Rs_kc = Nothing
            Db_kc = "当前库存数量为: " & number
            MsgBox Db_kc


执行该段代码, MsgBox 反馈数字正确,可不对数据库进行数据更新。后增加update语句如下:

Update 仓库信息.当前库存数量 Set 仓库信息.当前库存数量 = number where 仓库编号 = " & Me![仓库编号] & " And 商品编号 = " & Me![商品编号] & "

可总显示语句出错,请教!
12#
发表于 2007-5-16 05:36:00 | 只看该作者
将无关联的东西全部删除,然后再用ACCESS自带的压缩功能压缩一下
11#
 楼主| 发表于 2007-5-16 05:13:00 | 只看该作者
文件压缩后还有2.2M, 无法上传。我的邮件地址是: nw168@citiz.net, 能告知电子邮件吗?谢谢!
10#
发表于 2007-5-16 03:06:00 | 只看该作者
精简压缩后发到论坛就可以了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-6 06:46 , Processed in 0.096351 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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