DBGRID 是专用于DAO的吧可我的VB6里没有它,可找到一个MSFLEXGRID, 但我用以下代码却出错:对象变量或WITH块变量未设置.
Dim ws As Workspace
Dim db As Database
Dim rs As Recordset
Dim strsql As String
Set ws = DBEngine.Workspaces(0)Set db = ws.OpenDatabase(App.Path & "\pass", False, False, "ms access;pwd=0")
Set rs = db.OpenRecordset("select * from yfhp")
set msflexgrid1.datasource=rs这是什么原因是不是msflexgrid只能用于ADO,不能用于DAO?

解决方案 »

  1.   

    你看你的系统目录,及system32这个目录下有msdatgrd.ocx这个文件么?这个就是datagrid控件,找到后注册一下就好咯。
    datagrid可以用ado的,
    msflexgrid也能用dao
    Dim rs As Recordset
    这句改成Dim rs As new Recordset 就好咯
      

  2.   

    我说没有DBGRID,但DATAGRID是有的.
    另外,改成Dim rs As new Recordset 好相错了,我定义的是DAO的RECORDSET 怎么能加NEW 呢?
      

  3.   

    在VB6光盘的 \COMMON\TOOLS\VB\CONTROLS 路径下
      

  4.   

    看看在部件中选择浏览,然后敲入DBGIRD32.OCX
      

  5.   

    手边暂无VB6光盘没法装.
    在浏览里试了它提示:D:\WINNT\SYSTEM32\DBGIRD32.OCX找不到文件请检查所给文件名是否正确.
      

  6.   

    方法有两个:
    1。在VB6光盘的\Common\Tools\Vb\Controls目录中可以找到dbgrid32.reg和dbgrid32.ocx等文件,复制到Windows\System下,运行dbgrid32.reg进行注册,最后在VB6下引用即可。 2。上网搜索,将文件:DBGRID32.ocx 下载后复制到系统目录windows\system\下,点击“开始”->“运行”输入:REGSVR32.EXE DBGRID32.ocx 点击“确定”
                        ***************************
      

  7.   

    不好意思没找到.
    怎么没人告诉我用DAO怎样使用MSFLEXGRID? 是不能用吗?
      

  8.   

    dao可以用 msflexgrid的啊,使用前应定义好标头,行数,列数,然好对每行每列循环写数据
      

  9.   

    谢谢楼上各位.已注册DBGRID32.ocx 成功.但使用DBGRID出现以下问题
    窗体上有一个DBGRID控件,有如下代码:
    Dim ws As Workspace
    Dim db As Database
    Dim rs As Recordset
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase("h:\通讯录.mdb")
    Set rs = db.OpenRecordset("通讯")
    Set DBGrid1.DataSource = rs
    执行时错误:类不支持自动化或不支持期望的的接口.
    引用DAO3.51和3.6都这样.是不是又是什么版本冲突的问题?
    谢谢.
      

  10.   

    工程-〉引用 ,选中Microsoft data bound grid control
    在VB6光盘的\Common\Tools\Vb\Controls目录下运行dbgrid32.reg即可