我想让combo2随着combo1的选择而变化,写了一段代码,可总报“with块变量未设置”的错,不知怎么回事,请大家帮我看看!代码如下:Private Sub Combo15_Click(Index As Integer)
Dim i As String
Dim rst As ADODB.Recordset
SQL = "select typemc from rjtypelx where syrjid ='"
SQL = SQL & (Trim(Combo15(0).Text)) & "'"
Set rst = SelectSQL(SQL, Msg)
Combo15(1).Clear
If rst.RecordCount > 0 Then
Do While Not rst.EOF
i = rst.Fields(0)
Combo15(1).AddItem (i)
rst.MoveNext
Loop
rst.Close
Combo15(1).ListIndex = 0
Else
MsgBox "bb"
Exit Sub
End If
End Sub请大家帮帮忙!

解决方案 »

  1.   

    '你应该是没有 引用, 例如我下面代码的 Microsoft ActiveX Data Objects 2.5 Library
    '引用 Microsoft ADO Ext 2.5 for ddl and security
    '引用 Microsoft ActiveX Data Objects 2.5 Library
    '添加 Combo1  Combo2'代码说明:
    'Combo1 玫举本数据库中的所有表名
    '点击Combo1中的任何其中一个表, Combo2里面的数据同步更新,载入此表的所有数据Option Explicit
    Dim i%, strSQL$
    Dim Conn As Connection
    Dim rs As New ADODB.Recordset
    Private Sub Form_Load()
       Set Conn = New Connection
       Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & "c:\bwscale.mdb;Persist Security Info=False"
       '******************** Combo1 添加此库的所有表名
       Dim cat As New ADOX.Catalog
       Set cat.ActiveConnection = Conn
       For i = 0 To cat.Tables.Count - 1
          If Left(cat.Tables(i).Name, 4) <> "MSys" Then Combo1.AddItem cat.Tables(i).Name
       Next i
       If Combo1.ListCount > 0 Then
          Combo1.Text = Combo1.List(0)
          strSQL = "select * from " & Combo1.Text
          rs.Open strSQL, Conn, adOpenStatic, adLockOptimistic
          '******************** Combo2 添加Combo1中第一个表的所有数据
          If rs.RecordCount > 0 Then
             rs.MoveFirst
             For i = 0 To rs.RecordCount - 1
                Combo2.AddItem rs.Fields(1)
                rs.MoveNext
             Next i
             Combo2.Text = Combo2.List(0)
          End If
       End If
    End SubPrivate Sub Form_Unload(Cancel As Integer)
       rs.Close
       Conn.Close
       Set rs = Nothing
       Set Conn = Nothing
       End
    End SubPrivate Sub Combo1_Click()
       rs.Close
       strSQL = "select * from " & Combo1.Text
       rs.Open strSQL, Conn, adOpenStatic, adLockOptimistic
       If rs.RecordCount > 0 Then
          rs.MoveFirst
          Combo2.Clear
          For i = 0 To rs.RecordCount - 1
             Combo2.AddItem rs.Fields(1)
             rs.MoveNext
          Next i
          Combo2.Text = Combo2.List(0)
       End If
    End Sub
      

  2.   

    Set rst = New ADODB.Recordset 
    Set rst = SelectSQL(SQL, Msg)
      

  3.   

    我下面这一段代码倒是能查出来了,也就是说,combo15(0)选择不同的内容,combo15(1)也能从数据库里调出相应的数据来,可是现在我虽然把要用的数据调出来了,可是combo15(1)却选不上了,选里面的哪一个都选不上去,不知是怎么回事!代码是这样的:
    Private Sub Combo15_Click(Index As Integer)
    Dim i As Integer
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.RecordsetSQL = "select typemc from rjtypelx where syrjmc ='"
    SQL = SQL & (Trim(Combo15(0).Text)) & "'"
    Set rst = SelectSQL(SQL, Msg)
    Combo15(1).ClearFor i = 1 To rst.RecordCount
    Combo15(1).AddItem Trim(rst(0) & "")
    rst.MoveNext
    Next irst.CloseEnd Sub请各位指点!谢谢!
      

  4.   

    Msg 是啥? 没看到宣告也没看到内容 ?For i = 1 To rst.RecordCount 
    Combo15(1).AddItem Trim(rst(0) & "") 
    rst.MoveNext 
    Next i 改为rst.movefirst
    For i = 0 To rst.RecordCount - 1 '不是 1 To rst.RecordCount 
    Combo15(1).AddItem Trim(rst.Fields(0) & "")  '你少了Fields, 前面有了Trim 里面加"" 有什么意义?
    rst.MoveNext 
    Next i 
      

  5.   

    我现在别的都能实现了,可就是combo15(1)下拉列表里的选项选不上去,这是为什么呢?