设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 请教一段代码

[复制链接]
跳转到指定楼层
1#
发表于 2008-5-20 02:46:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下这段代码用在ACCESS的mdb后端,使用正常,n.Update 这一句可以更新数据。现在我把ACCESS 2000的后端升迁到sql 2000,这段代码依然可以运行,但是 n.Update 这一句已经不能更新数据了。我查阅aaccess帮助:
记录集类型基于 SQL 数据基于 Jet 数据
ADO读/写(1)只读
DAON/A读/写

可知在DAO记录集基于SQL数据时读写的状态不可知,需要改写成ADO记录集类型或DAO记录集类型,基于JET数据,我不太懂如何改写,请大侠们出手代劳。这一段代码基于窗体来循序处理数据更新非常直观。


Dim fphj
  Dim n As DAO.Recordset
  fphj = 0
If [20到款资料].Form![到款金额] > 0 Then
  Set n = [20商品资料].Form.Recordset
    n.MoveLast                      '移动到最后一笔
    n.MoveFirst                      '再移动回第一笔
    Do Until n.EOF                 '逐笔处理
     n.Edit                               '设定为可编辑状态
     If [20到款资料].Form![到款金额合计] - fphj >= [20商品资料].Form.发货金额 Then   '如果到款总计-分配到款累计大于本笔发货金额 则
      [20商品资料].Form![分配到款金额] = [20商品资料].Form.发货金额
      fphj = fphj + [20商品资料].Form.发货金额    '分配到款累加
     Else
      [20商品资料].Form![分配到款金额] = [20到款资料].Form![到款金额合计] - fphj     '本笔分配到款=到款总计余额
      Exit Do
     End If                             '结束处理
     n.Update                        '储存
     n.MoveNext                    '下一笔
   Loop
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2008-5-21 22:17:28 | 只看该作者

已解决

在代码中去掉:
Dim n As DAO.Recordset
n.Edit                              '设为可编辑状态
n.Update                         '储存
以上这三行代码是DAO专用格式,除去后,楼主的代码段就可以更新改写。
3#
发表于 2008-5-21 22:46:56 | 只看该作者
一个字:乱

既然用n,循环里又用控件名称,而且循环的逻辑也是,exit do了,那上句还要不要update呀!

还有设变量不太规范。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 10:21 , Processed in 0.086591 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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