新手分不多,请各位大侠帮忙~

wuwenchun168 2009-08-14 05:19:57
我要用VB代码更新 access里的数据,但系统提示“当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制”,代码如下



Dim cn As New ADODB.Connection, rs1 As New ADODB.Recordset, sql As String

Private Sub Command5_Click()
cn.Open "provider=microsoft.jet.oledb.4.0;data source=C:\Program Files\Microsoft Visual Studio\VB98\danzhuangli.mdb"
sql = "basicli where 编号='1'"
rs1.Open sql, cn
rs1.Fields("桩径") = Text1.Text

rs1.Update
end sub
问题是想在一个danzhuangli.mdb里的basicli表里更新数据,比如更新里面的“桩径”列为 Text1.Text内容,但出现如上错误,请各位大侠指教啊~在线等~谢谢!!!!!
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuwenchun168 2009-08-15
  • 打赏
  • 举报
回复
谢谢各位!结贴散分!
slowgrace 2009-08-14
  • 打赏
  • 举报
回复
6楼是对4楼5楼的解释。结帖吧。
slowgrace 2009-08-14
  • 打赏
  • 举报
回复
客户端游标更新后由ADO负责和数据库沟通,但是没有主键信息的话数据库是无法知道ADO需要更新哪个数据的,这个过程是你先调用ADO的update,然后由ADO底层去处理需要update的数据,而你在select的时候并没有一个可以唯一代表记录的主键,虽然在你的设想中只有1个数据,但是这只是一个特例,更多的是有很多记录的记录集,所以需要有一个能唯一代表一条记录的主键来作为ADO和数据库之间的沟通.
clear_zero 2009-08-14
  • 打赏
  • 举报
回复
在access里将"编号"字段设为主键
捧剑者 2009-08-14
  • 打赏
  • 举报
回复
在access里将"编号"字段设为主键。
chinaboyzyq 2009-08-14
  • 打赏
  • 举报
回复
客户端类型问题:
cn.CursorLocation = adUseClient
看看行不?
futosky 2009-08-14
  • 打赏
  • 举报
回复
sql = "basicli where 编号='1'"
改为sql="select *from basicli where 编号='1'"
rs1.Open sql, cn 这句后面有可选参数,比如adOpenKeyset
cn.Open "provider=microsoft.jet.oledb.4.0;data source=C:\Program Files\Microsoft Visual Studio\VB98\danzhuangli.mdb;Persist Security Info=False"
不知对不对
yangguo8013 2009-08-14
  • 打赏
  • 举报
回复
我工作机器上没有装Access,我认为出现这个问题可能与你的Access种的设置有关,或者VB版本太旧

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧