Private Sub Class_Initialize()
Dim conn As ADODB.Connection
Dim rst As ADODB.RecordsetEnd SubPublic Function querySQL(ByVal sql As String) As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic
Set querySQL = rstEnd Function调试时出现提示   
  compile   error:   
  user-defined   type   not   defined

解决方案 »

  1.   

    你rst是定义在Private Sub Class_Initialize()事件中的,在另一事件当然是没用了
    把它定义为窗体级的,如:
    Dim conn As ADODB.Connection
    Dim rst As ADODB.RecordsetPrivate Sub Class_Initialize()End Sub
      

  2.   

    Private conn As ADODB.Connection
    Private rst As ADODB.Recordset
    Private Sub Class_Initialize()
    set conn=new  ADODB.Connection
    End Sub
      

  3.   

    恩,我照做了,但是在Dim conn As ADODB.Connection这一行仍然报这个错呢
    为什么呢
      

  4.   

    你添加Mircosoft activeX data objects引用了么?
      

  5.   

    不好意思,我们最近布置作业,刚学VB,Mircosoft activeX data objects引用是什么啊?用activex exe和那个standard exe的有什么不同的吗?
      

  6.   

    引用阿
    你找到project,reference,然后找我上面说的,会找到很多版本2.5-2.8你选一个就好了
      

  7.   

    建议楼主先看看VB帮助,关于变量声明的有效范围。下面简单说明一下
    public 申明全局变量(窗体里申明只作用于窗体,模块里申明作用于整个工程)
    private 申明模块级变量(窗体里申明作用于窗体,模块里申明作用于该模块)
    dim 申明过程级变量(窗体里申明作用于窗体;模块里申明作用于该模块;过程里面申明,作用于该过程)