设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4869|回复: 10

[ADO/DAO] ADO 读回的记录集,用连续窗体显示,有什么办法能修改某记录?

[复制链接]

点击这里给我发消息

发表于 2011-2-21 16:03:10 | 显示全部楼层 |阅读模式
ADO 读回的记录集,用连续窗体显示,有什么办法能修改某记录?
发表于 2011-2-21 17:02:43 | 显示全部楼层
视为未绑定窗体处理即可

点击这里给我发消息

 楼主| 发表于 2011-2-21 18:14:59 | 显示全部楼层
本帖最后由 鱼儿游游 于 2011-2-21 18:20 编辑

由于ADO 读回的记录集的记录数是动态的,我试了多次,连续窗体只能显示读回的全部记录,不能修改记录。
应该是我的水平不行,有请版主明示,帮帮忙。

点击这里给我发消息

发表于 2011-2-21 21:18:44 | 显示全部楼层
在打开记录集前须先设置游标位置为本地:
         rst.CursorLocation = adUseClient     '游标位置
     rst.Open  ......
发表于 2011-2-22 17:24:11 | 显示全部楼层
t小宝 发表于 2011-2-21 21:18
在打开记录集前须先设置游标位置为本地:
         rst.CursorLocation = adUseClient     '游标位置
    ...

有这种例子吗?

点击这里给我发消息

 楼主| 发表于 2011-2-22 20:40:16 | 显示全部楼层
多谢小宝回复,我试过了,还是不能修改。
  Set rst = New ADODB.Recordset
    '打开ADO记录集
    With rst
       .Source = strSQL
       .ActiveConnection = cn
       .CursorLocation = adUseClient  
       .CursorType = 1
       .LockType = 3
       .Open
    End With

点击这里给我发消息

发表于 2011-2-23 09:55:04 | 显示全部楼层
源表要有一个唯一值的索引字段

点击这里给我发消息

 楼主| 发表于 2011-2-23 10:23:03 | 显示全部楼层
本帖最后由 鱼儿游游 于 2011-2-25 15:39 编辑

多谢小宝,问题是,记录集是两个表通过内连接而成的,返回的记录集不能修改。
形如:    strSQL = " SELECT USysUserPopedoms.*" & _
                             " FROM USysMenuItems INNER JOIN USysUserPopedoms" & _
                             " ON USysMenuItems.FItemID=USysUserPopedoms.FItemId" & _
                             " ORDER BY USysMenuItems.FParentOrder,USysMenuItems.FOrder"
表:USysUserPopedoms 和  USysMenuItems 都有一个唯一值的索引字段
返回的记录集不能修改。
发表于 2011-8-11 19:24:47 | 显示全部楼层
鱼儿游游 发表于 2011-2-23 10:23
多谢小宝,问题是,记录集是两个表通过内连接而成的,返回的记录集不能修改。
形如:    strSQL = " SELEC ...

首先像小宝说的,使用本地游标,另外如果来源于不止一个表的查询,首先必须确保查询是可更新查询,然后还必须要指定窗体的UniqueTable属性来指定哪个表是可更新的才行
发表于 2011-8-12 12:10:16 | 显示全部楼层
读取主键值,直接提交sql更新的语句,回来再刷新.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 09:01 , Processed in 0.118945 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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