DataDrid控件怎么不显示数据

xjb3166 2006-02-22 09:08:46
在一个表单中放一个DataDrid控件然后写下如下代码:

Private sub Form_load()
Dim constr As String, sqlstr As String
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Di + _
"\Dat.mdb;Persist Security Info=False"
conn.Open constr
sqlstr = "select * from Hcp "
cp.Open sqlstr, conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = cp

end sub

控件怎么不显示数据呢?当然数据库中有数据
...全文
84 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
daisy8675 2006-02-23
对CursorLocationEnum,没有做控制,CursorLocationEnum在默认的状态下为adUseServer,而Datagrid显示Access数据库需要使用客户端游标adUseClient。


Private sub Form_load()
Dim constr As String, sqlstr As String
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Di + _
"\Dat.mdb;Persist Security Info=False"
Conn.CursorLocation = adUseClient'------->加这句话

conn.Open constr
sqlstr = "select * from Hcp "
cp.Open sqlstr, conn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = cp

end sub
回复
bbhere 2006-02-23
设置客户端游标
conn.CursorLocation=adUseClient
回复
faysky2 2006-02-23
DataDrid控件怎么不显示数据
------------------------------------
一般有三种情况DataGrid不显示数据:
1.记录集对象里没有记录(可以用MsgBox cp.Eof 来判断)
2.记录集对象里有记录,但是没有设置客户端游标(在cp.Open 或conn.Open 前加上:cp.CursorLocation=adUseClient/conn.CursorLocation=adUseClient)
3.记录集对象里有记录,也设置了客户端游标,如果还没显示数据,那么可能是你对DataGrid进行了某些编辑(估计是DataGrid的Bug),换一个DataGrid就好了
回复
上官云峰 2006-02-23
你试试吧,好用的
记得要引用ado

Dim WithEvents adoPrimaryRS As Recordset '数据库连接对象
Private Sub Command1_Click()
'strsql 是你的查询语句 你可以order by 排序的字段
'strsql="select xh as 学号 from 表" 这里的学号就是你datagrid中列的标题

strsql="select 字段 from 表"
Set Db = New Connection
Db.CursorLocation = adUseClient
'下面的连接数据字符串你要修改一下
Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open strsql, Db, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = adoPrimaryRS
end sub





回复
1984bobby 2006-02-22
我也有这个问题~~同问~~留个印
回复
相关推荐
发帖

1187

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2006-02-22 09:08
社区公告
暂无公告