用循环怎样将记录集的3条记录加到ComboBox控件里?我这段代码怎么有错,提示“项目在所需的名称或序数未被发现”
Private Sub Form_Load()
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim msgtext As String
Dim i As Integer
    txtSQL = "select username from user1 "
    Set mrc = ExecuteSQL(txtSQL, msgtext)
For i = 0 To mrc.RecordCount - 1
    txtusername.AddItem (mrc.Fields(i))
Next i
End Sub

解决方案 »

  1.   


    提示“项目在所需的名称或序数未被发现”
    ======================
    你的记录集中没有mrc.RecordCount - 1这么多个字段。试试把
    txtusername.AddItem (mrc.Fields(i))---->改为txtusername.AddItem (mrc.Fields(1))

    txtusername.AddItem (mrc.Fields(2))之类。
      

  2.   

    我试了不行,如果改为txtusername.AddItem (mrc.Fields(0))可以加进去第一条,但是我要的是3条都进去,怎么办?
      

  3.   

    Private Sub Form_Load()
    Dim txtSQL As String
    Dim mrc As ADODB.Recordset
    Dim msgtext As String
    Dim i As Integer
        txtSQL = "select username from user1 "
        mrc.CursorLocation = adUseClient 
        Set mrc = ExecuteSQL(txtSQL, msgtext)
    For i = 0 To mrc.RecordCount - 1
        txtusername.AddItem (mrc!username)
    Next i
    End Sub
      

  4.   

    txtusername.AddItem (mrc.Fields(i))'出错
    改法txtusername.AddItem (txtusername.AddItem (mrc!字段名) & "")
      

  5.   

    Private Sub Form_Load()
    Dim txtSQL As String
    Dim mrc As ADODB.Recordset
    Dim msgtext As String
    Dim i As Integer
        txtSQL = "select username from user1 "
        mrc.CursorLocation = adUseClient 
        Set mrc = ExecuteSQL(txtSQL, msgtext)
    For i = 0 To mrc.RecordCount - 1
        txtusername.AddItem (mrc.Fields(0))
    Next i
    End Sub
      

  6.   

    我试了不行,如果改为txtusername.AddItem (mrc.Fields(0))可以加进去第一条,但是我要的是3条都进去,怎么办?
    ========================================
    mrc.Fields(0)用来列举你的记录集中记录的某字段的值而不是列举你的记录集,括号里的数字是字段编号而不是记录编号你的查询语句select username from user1 返回的记录集只有一个字段,所以你用mrc.Fields(0)正确(在这里第一个字段编号为0,第二个字段编号为1,如此类推),但mrc.Fields(1)、mrc.Fields(2)就出错了,因为你的记录没有第二第三个字段
    但我想我说了这么多,都不是你想要的结果,你要的应该是上面中海兄的代码吧试试另外,如果使用ado,建议使用datacombo,只需要设些属性,一句代码都不必写。
      

  7.   

    Private Sub Form_Load()
    Dim txtSQL As String
    Dim mrc As ADODB.Recordset
    Dim msgtext As String
    Dim i As Integer
        txtSQL = "select username from user1 "
        Set mrc = ExecuteSQL(txtSQL, msgtext)
    do while not mrc.eof
        txtusername.AddItem mrc.Fields("username")
        mrc.movenext
    loop
    End Sub