如何用记录集初始化非绑定的网格控件

green_hong 2001-12-04 10:53:31
这段代码是想用一记录集初始化一非绑定的DBGrid控件。
运行正常,但DBGrid控件中没有记录。
Private Sub Form_Load()
Dim en As rdoEnvironment
Dim cn As rdoConnection
Dim rs As rdoResultset
Dim myRow As Long

Set en = rdoEngine.rdoEnvironments(0)
Set cn = en.OpenConnection("odbc;dsn=as400/db2;",rdOpenKeyset)
Set rs = cn.OpenResultset("select iprod,idesc from
v623fset.iiml01 where left(iprod,2) = '99'",rdOpenKeyset)

With DBGrid1
.AllowAddNew = True
Do Until rs.EOF
.Columns(0) = rs!iprod
.Columns(1) = rs!idesc
rs.MoveNext
Loop
End With
cn.Close
en.CloseEnd
Sub
...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wesely 2001-12-04
  • 打赏
  • 举报
回复

你确认你的rs不为空?如果rs里没记录,DBGrid当然为空了。
最好是用DataGrid。
green_hong 2001-12-04
  • 打赏
  • 举报
回复
hi,plutu
由于我希望使用非绑定的网格控件,这种方法会出现“类不能自动化”的错误提示。不过分还是要给的,谢谢你。
hi,yuminggang
我已取得结果集,但不知如何填充网格控件。那个循环体本意就是填充控件的,但行不通,可否给一段示例代码给我。感谢您的回复。
plutu 2001-12-04
  • 打赏
  • 举报
回复
参考以下代码,如果有参考价值就别忘了加分,不然会伤热心人的心噢!?
Dim adoPrimaryRS1 As Recordset'注意此句放在声名部分

Private Sub Form_Load()
Dim db1 As Connection
Set db1 = New Connection
db1.CursorLocation = adUseClient
Set adoPrimaryRS1 = New Recordset
'用别名更改标题
db1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\My Documents\goods.mdb;Persist Security Info=False"
Set adoPrimaryRS1 = New Recordset
'用别名更改标题
adoPrimaryRS1.Open "select * from 类别 ", db1, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = adoPrimaryRS1
yuminggang 2001-12-04
  • 打赏
  • 举报
回复
实际上你使用的还是绑定。
真正的分离不是这样做的。

是通过传递一个SQL或者条件,返回一个已经断开的结果集或者数组,然后你用这个结果集或者数组填充相应的控件。
plutu 2001-12-04
  • 打赏
  • 举报
回复
Set DataGrid1.DataSource = adoPrimaryRS1
此句就是给datagrid1控件指定记录集

1,451

社区成员

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

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