本帖最后由 jyq001 于 2011-04-17 20:43:56 编辑

解决方案 »

  1.   

    前者声明一个Connection对象(内存中不存在这个对象)
    后者不仅声明一个对象,而且将这个对象实例化(也就是在内存中分配空间)要使用,必须实例化。
      

  2.   

    你的意思是:
    带new的,声明一个Connection对象(内存中不存在这个对象);
    不带new的,不仅声明一个对象,而且将这个对象实例化(也就是在内存中分配空间);
    是不是?另外你说“要使用,必须实例化”:
    就是说是用Dim cnn As new ADODB.Connection后必须还要用Dim cnn As ADODB.Connection,否则无法是用,是这样吗?
      

  3.   

    就是说是用Dim cnn As new ADODB.Connection后必须还要用Dim cnn As ADODB.Connection,否则无法是用,是这样吗Dim cnn As new ADODB.Connection
    set cnn = ADODB.Connection
      

  4.   

    你恰巧说反了,不带New 没有实例化
    带New ,实例化了
      

  5.   


    错了
    Dim cnn As new ADODB.Connection
    set cnn = new ADODB.Connection
      

  6.   

    再问几个问题:
    1、根据你的答复,说明必须要带上new才能正常工作,是不是?
    2、很多源码中只有Dim cnn As ADODB.Connection,不带new,又是为什么?什么意思?
    3、有些ACCESS数据库源码中,没有set cnn = ADODB.Connection,怎么也能运行?
    4、有了Dim rst As new ADODB.Recordset,是否必须要用Set rst = New ADODB.Recordset ?
    5、这些语句不放from-load中,都放在“通用”中可以吗?
      

  7.   

    看看这个帖子dbcontrols的回答,也没有使用set cnn = new ADODB.Connection呀?
    http://topic.csdn.net/u/20110405/19/d362a8ab-a708-48e2-acb1-aa380d1bec48.html?46426 
      

  8.   

    不要尽信书,装一个vb6.多实践下就明白些如果你定义的时候
    Dim cnn As new ADODB.Connection就不用后来的set ......
      

  9.   

    dim 是用来定义变量的关键字.dim 变量 as 类型X
    这是定义一个类型X的变量,比如:dim str as string再来看你发的代码dim 变量 as adodb.connection这是定义一个adodb.connection类型的变量,这个变量是个对象,这个对象还没有被初始化,要用这个变量,你需要set 变量 = new adodb.connection 这样你就可以使用变量了,此时的变量在内存中存在了,有效了,set 变量 = new XXX可以让为变量在内存中申请一段空间,于是变量存在了有效了,可以用了.为了销毁这段内存空间,我们在不用变量了之后可以用 set 变量 = nothing 来释放空间(此处不细说了,不然你会晕).
      

  10.   

    还有一种方法,你可以使用New关键字定义变量,例如:
    dim cn as new adodb.connection
    这里使用了new关键字,有了它你就不再需要set cn = new adodb.connection,使用后你仍然需要set cn = nothing.
      

  11.   

    你可以这样理解,下面两段代码近似于一样的.dim cn as adodb.connection
    set cn = new adodb.connection
    set cn = nothing
    dim cn as new adodb.connection
    set cn = nothing
      

  12.   

    NEW的英文意思是新的意思
    就是一个新的副本
    所以可以NEW很多次