连接数据库中
为什么我在遍历recordset对象时,
do while not recordest(对象).eof
loop这句话总是提示对象变量或者with块变量未设置啊
谢谢大家。。了

解决方案 »

  1.   

    一般出现这样问题的原因是你的recordset对象并没有创建,你把代码帖出来看看。
      

  2.   

    Private Sub Form_Load()
        Dim txtSQL As String
        Dim MsgText As String
        Dim mrc As ADODB.Recordset
        
        txtSQL = "select distinct typename from roomtype"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        If Not mrc.EOF Then
            Do While Not mrc.EOF
                Combo1(0).AddItem mrc.Fields(0)
                mrc.MoveNext
            Loop
        End If
        mrc.Close
        
        txtSQL = "select distinct price from roomtype"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        If Not mrc.EOF Then
            Do While Not mrc.EOF
                Combo1(1).AddItem mrc.Fields(0)
                Combo1(2).AddItem mrc.Fields(0)
                mrc.MoveNext
           Loop
        End If
        mrc.Close
        
        
    End Sub
      

  3.   

    Dim mrc As ADODB.Recordset是不是这句要改成Dim mrc As new ADODB.Recordset
    如果改过来后,提示,对象关闭时不允许操作...
    为什么呢?
      

  4.   

    例子:
    Public Sub FillStrSendCompanyGroup(Cbo As ComboBox)
        Dim db As New ADODB.Connection
        Dim rec As New ADODB.Recordset
        db.Open "driver={SQL Server};server=" & GetServerName & ";uid=sa;pwd=;database=grain_Buy"
        rec.Open "B_GetStrSendCompanyGroup", db, adOpenDynamic, adLockOptimistic
        Do While Not rec.EOF
            If Not IsNull(rec.Fields(0)) Then Cbo.AddItem Trim(rec.Fields(0))
            rec.MoveNext
        Loop
        rec.Close
        db.Close
        Set rec = Nothing
        Set db = Nothing
    End Sub
      

  5.   

    B_GetStrSendCompanyGroup可以改为select distinct typename from roomtype
    利用上面函数可以在form_load里
    call FillStrSendCompanyGroup(combo1)
    就把combo1填充好了如果需要填充另外combobox
    可以再次调用
    call FillStrSendCompanyGroup(comboxxxx)
    就把comboxxxx填充好了
      

  6.   

    谢谢,可我的源程序中,使用的是一个公共函数ExecuteSQL
    定义这个函数返回一个ADODB.Recordset,所以mrc保存的已经是结果集了啊。。
    不知道这样的应该怎么 open啊。。