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不支持更新。这可能是提供者限制的,也可能是选定的锁定类型限制的。

请问怎么修改解决??????
...全文
83 点赞 收藏 7
写回复
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
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告