DataGrid老是报7004错误是怎么回事?

Past 2002-02-01 09:55:40
错误描述是"the rowset is not bookmarkable".我设置数据源的过程如下:
Dim cnMy As Connection
Dim cmdMy As Command
Dim rsMy As RecordSet
....
Set cmdMy = new Command
Set cmdMy.ActiveConnection = cnMy
cmdMy.commandtext = "Select * From Table1"
Set rsMy = cmdMy.Execute
Set DataGrid1.DataSource = rsMy '在这句出错

...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
acptvb 2002-02-05
  • 打赏
  • 举报
回复
感谢您使用微软产品。

您必须使用支持 bookmark 的Recordset 来绑定 DataGrid 控件。也就是说,您需要使用 keyset 或 static ADO
recordset 而不是 forward-only 和 dynamic ADO recordset。

更详细的信息,您可以参考以下文章:

ID: Q278408 PRB: DataGrid Cannot Be Bound to a Non-Bookmarkable Recordset
<http://support.microsoft.com/default.aspx?scid=kb;EN-US;q278408>

您可以参考以下的示例代码来解决您的问题:

Dim cnn as New ADODB.Connection
Dim cmd as New ADODB.Command
Dim rs as New ADODB.Recordset

cnn.Open "Provider=SQLOLEDB;Data Source=myServer;Initial Catalog=testdb;User Id=sa;Password="

cmd.ActiveConnection = cnn
cmd.CommandText = "Exec SPTest"

rs.CursorType = adOpenStatic
rs.Open cmd

Set DataGrid1.DataSource = rs



- 微软全球技术中心 VB技术支持



立即参加微软认证的“最有价值专家”评选,赢取价值万元以上的丰富奖品!详情参见(http://www.csdn.net/expert/Topic/456/456919.shtm)



本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。

Past 2002-02-01
  • 打赏
  • 举报
回复
用RecordSet的Open方法是没有问题,但是如果要用Command对象来执行存贮过程,就要用类似Set rsMy = cmdMy.Execute来初始化数据集
jamex 2002-02-01
  • 打赏
  • 举报
回复
推移下
lihonggen0 2002-02-01
  • 打赏
  • 举报
回复
数据源设置不对吧请参阅
Public Rs_Jc_Shhy_Csb As New ADODB.Recordset
With Rs_Jc_Shhy_Csb
If .State = adStateOpen Then
.Close
End If
.ActiveConnection = adoCN
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockBatchOptimistic
.Source = "SELECT * FROM Jc_Shhy_Csb WHERE hth='" & W_Jc_Shhy.Text1(0).Text & "'"
.Open
End With

Set DataGrid1.DataSource = Rs_Jc_Shhy_Csb

7,763

社区成员

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

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