Data 控件不能直接支持 Access 2000。选 工程-引用 菜单,选中 microsoft dao 3.6 object library,把低于此版本的 DAO 库引用去掉。Dim db As DAO.Database, rs As DAO.RecordsetSet db = DBEngine.Opendatabase(App.Path & "\yourDB.mdb")
Set rs = db.Openrecordset("select * from yourTable") 'SQL语句根据你的需要写
Set Data1.Recordset = rs

解决方案 »

  1.   

    谢谢!但是教材这个实例就是直接用Data 控件的Connect、DatabaseName、RecordSource属性连接到那个Access2000数据库及包含的“成绩”表的,完整的代码也是如我发的那样,没有涉及DAO.Database和DAO.Recordset 。
      

  2.   

    连接 Access 97 是没有问题的。Access 2000 升级了一些格式性的东西,原来的 Engine 已经不能识别它。因此,要引用新的引擎。但由于 Data 控件不能直接挂接它,只好借助 RecordSet 对象。
      

  3.   

    另外,你看的书太老了。Data 控件属于 DAO 对象范畴。现在大家已经普遍使用 ADO 了。由于新的操作系统都已经内置了 ADO 支持文件,使用 ADO 已经不像十几年前那么麻烦,一个涉及 ADO 数据库应用的软件安装包需要十几个软盘来装载 ADO 安装包。在 ADO 下,对应 Data 控件的是 ADODC 控件。在网上搜一下,很多资料。
      

  4.   

    在Access 2000下,将原数据库转换为Access97格式,就可使用Data 控件了。
      

  5.   

    我的VB安装SP6.0了,刚才把数据库转换为Access97格式,又将Data1控件的几个Connect、DatabaseName、RecordSource属性都正常的连接到那个97格式的数据库及包含的“成绩”表了,但现象依旧?难不成需要我重新卸载SP6.0或安装Access97吗?
      

  6.   

    我的VB之前已安装SP6.0了,刚才把数据库转换为Access97格式,又将Data1控件的几个Connect、DatabaseName、RecordSource属性都正常的连接到那个97格式的数据库及包含的“成绩”表了,但现象依旧?难不成需要我重新卸载SP6.0或安装Access97吗?
      

  7.   

    不要采用绑定方式:Private Sub Form_Load()
        Data1.Refresh
        Do Until Data1.Recordset.EOF
            Combo1.AddItem Data1.Recordset!学号
            Combo2.AddItem Data1.Recordset!姓名
            Data1.Recordset.MoveNext
        Loop
        
        If Combo1.ListCount Then Combo1.ListIndex = 0
    End Sub实际上,Combo1_Click 事件代码还可以更简单:
    Private Sub Combo1_Click()
        Combo2.ListIndex = Combo1.ListIndex
    End Sub
    根本不用再去查数据库记录。
      

  8.   

    已有解决答案:
    原因是你的Combo1里没有项目,可在属性窗口里添加,也可以在程序里加
    Private Sub Form_Load()
        Combo1.AddItem "01"
        Combo1.AddItem "02"
    End Sub
    这样单击这个下拉框,并选择后,就可执行Combo1_Click了。
    顺便问一下:我的数据库里若是没有记录,或者是3条以上,那么加这2行还会解决无反应么?还是有几条就照此加上对应的几行?