如題,頂者有分,還問一下什麽是引用,最好有例子

解决方案 »

  1.   

    New ADODB.Connection 與 CreateObject("adodb.connection)的區別 
    ________________________________________________________________前者是在工程中已经引用了ADO类库(工程-〉references->Microsoft ActiveX data Objects),实例化一连接对象。
    后者是代码运行中后期创建一个连接对象,没有必要在工程中引用。
      

  2.   

    看看吧引用就如同定义一个变量,不引用,当然就不能用了
    Dim msgtext As String
    Dim mrc As ADODB.RecordsetPublic Function ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset
        Dim cnn As ADODB.Connection
        Dim rst As ADODB.Recordset
        Dim sTokens() As String
        'Dim SQL As String
        On Error GoTo ExecuteSQL_Error
        sTokens = Split(sql)
        Set cnn = New ADODB.Connection
        cnn.Open ConnectString
        If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
           cnn.Execute sql
           MsgString = sTokens(0) & "query successful"
        Else
           Set rst = New ADODB.Recordset
           rst.Open Trim$(sql), cnn, adOpenKeyset, adLockOptimistic
          
           
           Set ExecuteSQL = rst
            
           MsgString = "查询到" & rst.RecordCount & "条纪录"
        End If
    ExecuteSQL_Exit:
        Set rst = Nothing
        Exit Function
        Set cnn = Nothing
    ExecuteSQL_Error:
        MsgString = "查询错误:" & Err.Description
        Resume ExecuteSQL_Exit
    End FunctionPublic Function ConnectString() As String
        ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
        'ConnectString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=aa;Data Source=RJB-CL"
    End Function
      

  3.   

    createobject与new 的关键区别就是声明后系统对资源的控制权不一样。
    createobject是由内存中重新创建一个实例而不是简单的资源计数器+1的概念。如果内存中存在一个这样的实例,编译器不会理会这个实例而是将对象重新创建一个。实际上是一个完全独立的新的资源实例。并且不受GC的资源回收控制,必须自己回收。
    new声明的时候,编译器回自动寻找内存中的相应实例,找到了以后,将资源计数器+1,并不会在内存中重新声明内存地址空间,他是受GC限制的,当编译器运行完毕后,会自动将资源编译器里面的该对象的资源计数器-1,如果为计数器0的话就自动释放该对象。
    引用就是允许您选择另外的应用程序的对象,通过设置对那个应用程序对象库的引用您可以在您的代码中使用它。
      

  4.   

    weiweiplay(虚幻) 的解答不错我也不明白这和传值有什么关系?
      

  5.   

    楼上的都说的太专业,LZ都这样了,你们摆出来那么一大堆,他能理解多少?
    我回答一下,看看楼主是不是感觉这个更直观:
    new adodb.connection可以理解为新建一个ADO的连接变量,是ADO连接方法的一个标志变量,例如:set conn=new adodb.connection 就是说把ADO连接方法由conn来代理表示,直观的说就是设置conn为ADO的连接方法,后面的代码肯定是conn.open ...的作用也就等于adodb.connection.open了,即打开连接。CreateObject("adodb.connection)当然就是创建一个ADO对象了,也就类似于函数的声明。应该知道做程序使用后面的变量了是什么的都必须要先声明变量,然后才能进行引用和赋值。结合上面的解释,可以这样理解和使用,先用CreateObject("adodb.connection)创建ADO对象,然后再使用new adodb.connection创建已经创建的ADO对象的连接对象。
    差不多了,虽然有些词语有点概念不清,我想你应该能理解了他们的作用。
      

  6.   

    cuilei197979給的程序也沒有那樣做啊
      

  7.   

    前期绑定和后期绑定的区别
    new 方式 速度快于 createobject
      

  8.   

    weiweiplay(虚幻) 的回答够专业,赞一个!