Office中国论坛/Access中国论坛

标题: ADO 读回的记录集,用连续窗体显示,有什么办法能修改某记录? [打印本页]

作者: 鱼儿游游    时间: 2011-2-21 16:03
标题: ADO 读回的记录集,用连续窗体显示,有什么办法能修改某记录?
ADO 读回的记录集,用连续窗体显示,有什么办法能修改某记录?

作者: todaynew    时间: 2011-2-21 17:02
视为未绑定窗体处理即可
作者: 鱼儿游游    时间: 2011-2-21 18:14
本帖最后由 鱼儿游游 于 2011-2-21 18:20 编辑

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

作者: t小宝    时间: 2011-2-21 21:18
在打开记录集前须先设置游标位置为本地:
         rst.CursorLocation = adUseClient     '游标位置
     rst.Open  ......
作者: tzk    时间: 2011-2-22 17:24
t小宝 发表于 2011-2-21 21:18
在打开记录集前须先设置游标位置为本地:
         rst.CursorLocation = adUseClient     '游标位置
    ...

有这种例子吗?
作者: 鱼儿游游    时间: 2011-2-22 20:40
多谢小宝回复,我试过了,还是不能修改。
  Set rst = New ADODB.Recordset
    '打开ADO记录集
    With rst
       .Source = strSQL
       .ActiveConnection = cn
       .CursorLocation = adUseClient  
       .CursorType = 1
       .LockType = 3
       .Open
    End With

作者: t小宝    时间: 2011-2-23 09:55
源表要有一个唯一值的索引字段
作者: 鱼儿游游    时间: 2011-2-23 10:23
本帖最后由 鱼儿游游 于 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
鱼儿游游 发表于 2011-2-23 10:23
多谢小宝,问题是,记录集是两个表通过内连接而成的,返回的记录集不能修改。
形如:    strSQL = " SELEC ...

首先像小宝说的,使用本地游标,另外如果来源于不止一个表的查询,首先必须确保查询是可更新查询,然后还必须要指定窗体的UniqueTable属性来指定哪个表是可更新的才行
作者: chaosheng    时间: 2011-8-12 12:10
读取主键值,直接提交sql更新的语句,回来再刷新.
作者: purplerose    时间: 2015-7-30 22:26
有点类似于PL/SQL的查询,两个表建立的查询,如果要更改记录值,必须指定要更新哪个表{:soso_e112:}




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3