用循环怎样将记录集的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
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
提示“项目在所需的名称或序数未被发现”
======================
你的记录集中没有mrc.RecordCount - 1这么多个字段。试试把
txtusername.AddItem (mrc.Fields(i))---->改为txtusername.AddItem (mrc.Fields(1))
或
txtusername.AddItem (mrc.Fields(2))之类。
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
改法txtusername.AddItem (txtusername.AddItem (mrc!字段名) & "")
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
========================================
mrc.Fields(0)用来列举你的记录集中记录的某字段的值而不是列举你的记录集,括号里的数字是字段编号而不是记录编号你的查询语句select username from user1 返回的记录集只有一个字段,所以你用mrc.Fields(0)正确(在这里第一个字段编号为0,第二个字段编号为1,如此类推),但mrc.Fields(1)、mrc.Fields(2)就出错了,因为你的记录没有第二第三个字段
但我想我说了这么多,都不是你想要的结果,你要的应该是上面中海兄的代码吧试试另外,如果使用ado,建议使用datacombo,只需要设些属性,一句代码都不必写。
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