ADODB问题,求救

okcat 2004-10-12 11:08:44
窗体上有一网格控件与一个命令按钮,该命令按为删除按钮,删除在网格控件中选中的一条记录,利用ADODB与数据库连以及与网格控件的连接。

代码:


Dim con As ADODB.Connection  ‘定义在窗体的通用声明部分
Dim rs As ADODB.Recordset
Dim str As String

Private Sub Command1_Click()   ’单击删除按钮删除记录
a = MsgBox("确实要删除该记录吗?", vbOKCancel)
If a = vbOK Then
rs.Delete
rs.MoveNext
If rs.EOF = True Then
rs.MoveLast
End If
ElseIf a = vbCancel Then
Exit Sub
End If
End Sub

Private Sub Form_Load()    ‘窗体加载时连接数据库以及网格控件
Set con = New ADODB.Connection
str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\图书管理系统.mdb;Persist Security Info=False"
con.Open str
con.CursorLocation = adUseClient
Set rs = con.Execute("select * from 图书信息表")
Set MSHFlexGrid1.DataSource = rs
End Sub

运行时选中某一记录,单击删除按钮。出现错误提示信息:
当前recordset不支持更新。这可能是提供者限制的,也可能是选定的锁定类型限制的。

请问怎么修改解决??????
...全文
144 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
winnerfast_gg 2004-10-13
  • 打赏
  • 举报
回复
就直接
dim sql as string
sql = "select * from 图书信息表"
rs.Open sql,con,1,3
就行了。
GGL123 2004-10-13
  • 打赏
  • 举报
回复
rs.CursorLocation = adUseClient
rs.Open ("select * from 图书信息表"), con, adOpenStatic, adLockOptimistic
officecn 2004-10-13
  • 打赏
  • 举报
回复
那是因为你打开的Recordset游标方式不支持更新。
Henry_Wan 2004-10-13
  • 打赏
  • 举报
回复
Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic。
adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。
adOpenKeyset 1 启动一个Keyset类型的游标。
adOpenDynamic 2 启动一个Dynamic类型的游标。
adOpenStatic 3 启动一个Static类型的游标。

Jelon提供的方法可以。

guxizhw 2004-10-13
  • 打赏
  • 举报
回复
rs.Open strSQL, cn, adOpenForwardOnly, adLockOptimistic
Jelon 2004-10-12
  • 打赏
  • 举报
回复
刚才复制后没有去掉括号,应该是:
rs.Open "select * from 图书信息表", con, adOpenStatic, adLockOptimistic
Jelon 2004-10-12
  • 打赏
  • 举报
回复
你可将下面这条语句:
Set rs = con.Execute("select * from 图书信息表")
换成:
rs.Open ("select * from 图书信息表"), con, adOpenStatic, adLockOptimistic

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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