我刚加完分时看的,右边都是零,中途断了一次网,出了两次错误信息。现在一看,才又正常。
咳,既然如此,我就再问一个问题吧,答出来我还给分,我分是很多的呦:)
你曾说过:
如果可能还是改学ADO吧,DAO都快被淘汰了,如果一定要用DAO,也尽量引用DAO,不要用DATA控件,虽然引用DAO代码量会大一点,但比用DATA控件灵活得多。
关于ADO我不太熟悉,如果不用DATA控件,用什么呢?直接引用ADO就可以连接吗?具体如何做?最好最后完成的可以是绿色软件,我不喜欢弄个挺大的安装程序。

解决方案 »

  1.   

    Dim cnn1 As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim cnnstr As String
    Set cnn1 = New ADODB.Connectioncnnstr = " provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;"
    cnn1.Open cnnstrSet rst = New ADODB.Recordset
    rst.CursorType = adOpenKeyset
    rst.LockType = adLockOptimistic
    rst.Open "select * from stu", cnn1Set Form1.MSHFlexGrid1.DataSource = rstrst.Close
    cnn1.Close
      

  2.   

    引用ADO还是DAO,看自己的需要吧。如果只是连接本地数据库,而且是access数据库,还是用DAO好一点。只要程序一用到数据库,安装程序就会很大(10M以上).VB没办法做绿色软件,(如果只用标准控件,不引用别的东西,在win2K以上版本可正常运行),如果一定要做的话,只能将所有要用到的dll.ocx放入资源文件中,这样你的exe文件将大的惊人。即使是VC如果硬要做静态连接,生成的exe文件也会很大的。
      

  3.   

    引用ADO还是DAO,看自己的需要吧。如果只是连接本地数据库,而且是access数据库,还是用DAO好一点。只要程序一用到数据库,安装程序就会很大(10M以上).VB没办法做绿色软件,(如果只用标准控件,不引用别的东西,在win2K以上版本可正常运行),如果一定要做的话,只能将所有要用到的dll.ocx放入资源文件中,这样你的exe文件将大的惊人。即使是VC如果硬要做静态连接,生成的exe文件也会很大的
      

  4.   

    你已经给我加完分了,谢了。
     我觉得你这种情况最好先看看书,有个概念,因为vb是基于对象的语言,而ADO则把这种思想发挥了出来,DAO的功能很局限,它的功能ADO全能实现,而且非常方便,控制灵活,你可以定义自己所需的对象,组件和类。
     这样做的话你会发现你的程序结构很清楚,做大了也不怕。最忌讳的就是把所有的代码都堆到窗体中,这是很不科学的,以后改的话就很麻烦。
     你如果做c/s结构软件的话,就用ADO,三层开发,不会错的。
      

  5.   

    各位:还有一问要请教,在此一并问了吧:)
    我用
    strsql = "select * from 题库 where '难度'=2 and '类型'='单选'"
    可以转到相应的记录,但只能是转到库中的第一条满足要求的记录,原来用
    Data1.Recordset.FindNext可以再接着找下一个,但用了这个每次点击都是先到记录开头,再找第一条满足的记录,无法查找下一个呀?
      

  6.   

    只要用一次就行了,你可以看一下data1.recordset.recordcont等于几就说明符合条件的记录有几条。
    这条语句是生成一个符合条件的记录集。找下一个时,只要data1.recordset.movenext就行了。