关于ADO与DataGrid的问题

BrightFire 2003-03-29 04:40:38
有以下代码
Private Sub Form_Load()
Dim str As String
str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\s.mdb;Persist Security Info=False"
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open str
rst.Open "s", cnn
Set DataGrid1.DataSource = rst
End Sub

为何数据没有在Datagrid1中显示出来


...全文
46 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjie1234 2003-03-29
  • 打赏
  • 举报
回复
《str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\s.mdb;Persist Security Info=False"》
你用连接对象,连接了一个叫”s.mdb“,数据库。
但是你要在记录集对象里,打开一个表,这样在网格控件里才能显示。

rst.Open "表名", cnn
Set DataGrid1.DataSource = rst

itxxx 2003-03-29
  • 打赏
  • 举报
回复
DataGrid是可以与ADO对象一起用的

Microsoft.Jet.OLEDB.4.0下,“Set DataGrid1.DataSource = rst”,我已调试过是可以的。

将ADO连接的CursorLocation属性设置为客户端,也就是使用由本地游标库提供的客户端游标,默认值“adUseServer ”是使用数据提供者或驱动程序提供的游标,而本地游标引擎通常允许使用的许多功能可能是驱动程序提供的游标无法使用的,具体可参看MSDN
SuperPrimer 2003-03-29
  • 打赏
  • 举报
回复
hzybc说得对!
BrightFire 2003-03-29
  • 打赏
  • 举报
回复
不是 而是没有数据显示在datagrid中 但用ado控件连就没这个问题
hzybc 2003-03-29
  • 打赏
  • 举报
回复
在Microsoft.Jet.OLEDB.4.0下,不支持Set DataGrid1.DataSource = rst
只有在Microsoft.Jet.OLEDB.3.51才支持Set DataGrid1.DataSource = rst
但是Microsoft.Jet.OLEDB.3.51不支持ACCESS2000.

SuperPrimer 2003-03-29
  • 打赏
  • 举报
回复
DataGrid的正确使用方法是将其与一个ADODC关联,在ADODC中设定数据源.
你的那段代码应该在
Set DataGrid1.DataSource = rst
这句话报错,是吧?
BrightFire 2003-03-29
  • 打赏
  • 举报
回复
itxxx大哥真行,能不能告诉我为什么要加这一句啊
itxxx 2003-03-29
  • 打赏
  • 举报
回复
'在"cnn.Open str"前加上这一句试试,不行再说

cn.CursorLocation = adUseClient
BrightFire 2003-03-29
  • 打赏
  • 举报
回复
无论是在Form_Load()事件中还是在Form_Activate()事件中都不行
BrightFire 2003-03-29
  • 打赏
  • 举报
回复
"s"是数据库中的一个表名
Zedee 2003-03-29
  • 打赏
  • 举报
回复
rst.Open "s", cnn

"s"是什么东东
hzybc 2003-03-29
  • 打赏
  • 举报
回复
不要在Form_Load()事件中,改在Form_Activate()事件中

1,217

社区成员

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

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