设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2094|回复: 7
打印 上一主题 下一主题

[查询] 求助啊 可以追加无法更新??????

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-7 19:04:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Private Sub 输入_AfterUpdate()
Dim XSNum As Single
Dim i As Integer
Dim STemp As String
Dim Rs As ADODB.Recordset
Dim Cunzai As Boolean
Set Rs = New ADODB.Recordset

STemp = "Select * From 销售"

Rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    XSNum = InputBox("请输入您购买该商品的数量:", "购买数量", 1)
         
        Cunzai = False
    If Rs.RecordCount < 1 Then
        Cunzai = False
    Else
      
        For i = 1 To Rs.RecordCount
            
            If Rs("销售单编号") = VarArray(0) And Rs("条码号") = Me.输入 Then
         
               
                Rs("销售数量") = Rs("销售数量") + XSNum
                Rs("销售金额") = Rs("销售数量") * Rs("销售单价")
               
                Rs.Update
               
                 
                Me.销售_子窗体.Requery
                Cunzai = True
                Rs.Update
                Exit For   
            Else
                Rs.MoveNext
            End If
        Next i
    End If
    If Cunzai = False Then
         
         
        
        Rs.AddNew
        Rs("销售单编号") = Me.销售单编号
        
        Rs("条码号") = Me.[库存明细 子窗体]![条码号]
        Rs("商品编号") = Me.[库存明细 子窗体]![商品编号]
        Rs("产品名称") = Me.[库存明细 子窗体]![产品名称]
        Rs("型号规格") = Me.[库存明细 子窗体]![型号规格]
        Rs("销售数量") = XSNum
        Rs("销售单价") = Me.[库存明细 子窗体]![单价]
        Rs("销售金额") = Rs("销售数量") * Me.[库存明细 子窗体]![单价]
        Rs("结算日期") = Now
        Rs("经手人") = "9999"
        Rs.Update
          Me.销售_子窗体.Requery
    End If

    Set Rs = Nothing
    Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-6-7 19:56:34 | 只看该作者
本帖最后由 roych 于 2011-6-7 20:03 编辑

把第一个Rs.Update删除掉再试试。也就是第一段For语句改成一下代码:
For i = 1 To Rs.RecordCount
            If Rs("销售单编号") = VarArray(0) And Rs("条码号") = Me.输入 Then
                Rs("销售数量") = Rs("销售数量") + XSNum
                Rs("销售金额") = Rs("销售数量") * Rs("销售单价")                 
                Me.销售_子窗体.Requery
                Cunzai = True
                Rs.Update
                Exit For   

3#
 楼主| 发表于 2011-6-8 13:17:47 | 只看该作者
回复 roych 的帖子

还是无法实现 麻烦帮修改下 谢谢了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
发表于 2011-6-8 13:39:28 | 只看该作者
本帖最后由 roych 于 2011-6-8 14:10 编辑

回复 文棣 的帖子
重新看了下实例,按我的理解是,如果销售表里没有这条记录,则新增一条。如果存在这条记录,则在销售表里更新这条记录的数量和金额即可。如果没有理解错误的话,下面是正确的代码,已经调试过。
———如果需要在库存表里也更新的话,则需要另外再打开一个记录集。。。。

  1. Dim XSNum As Single
  2. Dim i As Integer
  3. Dim STemp As String
  4. Dim Rs As ADODB.Recordset
  5. Dim Cunzai As Boolean
  6. Set Rs = New ADODB.Recordset
  7. STemp = "Select * From 销售 where 条码号='" & Me.输入 & "'"
  8. Rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  9. XSNum = InputBox("请输入您购买该商品的数量:", "购买数量", 1)
  10. '如果不存在记录,则在销售表里新增一条。
  11. If Rs.EOF Then
  12.         Rs.AddNew
  13.         Rs("销售单编号") = Me.销售单编号
  14.         Rs("条码号") = Me.[库存明细 子窗体]![条码号]
  15.         Rs("商品编号") = Me.[库存明细 子窗体]![商品编号]
  16.         Rs("产品名称") = Me.[库存明细 子窗体]![产品名称]
  17.         Rs("型号规格") = Me.[库存明细 子窗体]![型号规格]
  18.         Rs("销售数量") = XSNum
  19.         Rs("销售单价") = Me.[库存明细 子窗体]![单价]
  20.         Rs("销售金额") = Rs("销售数量") * Me.[库存明细 子窗体]![单价]
  21.         Rs("结算日期") = Now
  22.         Rs("经手人") = "9999"
  23.         Rs.Update
  24.     Else
  25. '如果存在记录,则只需要更新销售数量和金额即可。
  26.         t = Rs.Fields("销售数量").Value
  27.         Rs.Fields("销售数量").Value = Rs.Fields("销售数量").Value + XSNum
  28.         Rs("销售金额") = Rs("销售数量") * Me.[库存明细 子窗体]![单价]
  29.         Rs.Update
  30.     End If
  31.     Me.销售_子窗体.Requery
  32.     Set Rs = Nothing
  33. End Sub
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
 楼主| 发表于 2011-6-8 14:37:07 | 只看该作者
回复 roych 的帖子

感谢版主 一切OK
6#
发表于 2011-6-8 16:59:08 | 只看该作者
为什么会存在多条记录呢?——这个问题要想清楚。
如果是因为日期/时间的缘故,可以考虑在Where里加上日期作为条件,从而得到唯一值。
如果无法获取唯一值,那会导致两种结果:用For语句则会更新/追加全部数据;不用For语句,则更新/追加第一条数据。
7#
 楼主| 发表于 2011-6-8 16:51:34 | 只看该作者
回复 roych 的帖子

版 主好  存在多条不同记录 代码就不对了
8#
 楼主| 发表于 2011-6-8 17:19:59 | 只看该作者
回复 roych 的帖子

我弄明白了 感谢你  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-23 13:47 , Processed in 0.122536 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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