Dim con As ADODB.Connection
    Set con = New ADODB.Connection
    con.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User  ID=sa;Initial Catalog=hospital;Data Source=."
    con.Open
    Dim cmd As ADODB.Command
    Dim paras As ADODB.Parameter
    Set cmd.ActiveConnection = con  '它这里报错-对象变量未设置或with未设置
    cmd.CommandText = "Scase"
    cmd.CommandType = adCmdStoredProc
    Set paras = cmd.CreateParameter("string1", adChar, adParamInput)
    cmd.Parameters.Append paras
    cmd("string1") = "1"
    cmd.Execute

解决方案 »

  1.   

    Dim con As ADODB.Connection 
        Set con = New ADODB.Connection
        con.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User  ID=sa;Initial Catalog=hospital;Data Source=."   '引用那个数据库?
        con.Open
        Dim cmd As ADODB.Command
           Set cmd = New Command     '在这增加这条
        Dim paras As ADODB.Parameter
        Set cmd.ActiveConnection = con  '它这里报错-对象变量未设置或with未设置
        cmd.CommandText = "Scase"
        cmd.CommandType = adCmdStoredProc
        Set paras = cmd.CreateParameter("string1", adChar, adParamInput)
        cmd.Parameters.Append paras
        cmd("string1") = "1"
        cmd.Execute
      

  2.   

    slmn(自游自在的鱼)说得不错Dim cmd As ADODB.Command只是声明cmd为ADODB.Command类型的对象,你还要把它实例化后它才在内存中构造出来,Set cmd.ActiveConnection = con 才可以操作它的ActiveConnection属性,所以这里的报错报得很清楚“对象变量未设置或with未设置”,你还没构造出这个对象呢,VB肯定不买你的帐。 Set con = New ADODB.Connection
    是将con实例化,其实Command对象和它一样的,也要实例化方可使用。最后提醒你一句,有开就要有关,用完了要将对象Set 对象名 = Nothing 哦
    别让你的程序把系统内存吃个精光才好啊