Sql 如何将查询结果添加到组合框
在这里,我试图将查询结果添加到combobox中,但可以将查询结果添加到combobox中,只要查询结果限制为一个值,但不能添加它 请在这个问题上帮助我Sql 如何将查询结果添加到组合框,sql,vba,excel,Sql,Vba,Excel,在这里,我试图将查询结果添加到combobox中,但可以将查询结果添加到combobox中,只要查询结果限制为一个值,但不能添加它 请在这个问题上帮助我 Private Sub CommandButton1_Click() Dim i As Integer Dim rs As ADODB.Recordset Dim vendor As String Dim season As String Dim ms As String Dim JS As String With Application.F
Private Sub CommandButton1_Click()
Dim i As Integer
Dim rs As ADODB.Recordset
Dim vendor As String
Dim season As String
Dim ms As String
Dim JS As String
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Show
For i = 1 To .SelectedItems.Count
Me.TextBox1.Value = .SelectedItems(i)
Next
End With
fpath = Me.TextBox1.Value
'settings.savesettings
'fpath = UserForm1.TextBox1.Value
vendor = "Select distinct [Vendor Code] from [Data$] where [Vendor Code] is not null"
season = "Select distinct [Season] from [Data$] where [Season] is not null"
ms = "Select distinct [Material Style] from [Data$] where [Material Style] is not null"
JS = "Select distinct [JDE Style] from [Data$] where [JDE Style] is not null"
Call connectiontosql.connectiontosql
Set rs = New ADODB.Recordset
rs.Open vendor, cn, adOpenKeyset, adLockOptimistic
For i = 0 To rs.RecordCount - 1
Me.ComboBox1.AddItem rs.Fields(i).Value
Next
rs.Close
rs.Open season, cn, adOpenKeyset, adLockOptimistic
For i = 0 To rs.RecordCount - 1
Me.ComboBox2.AddItem rs.Fields(i).Value
Next
rs.Close
Call connectiontosql.connectiontosql
rs.Open ms, cn, adOpenKeyset, adLockOptimistic
i = 1
Do Until i = rs.RecordCount
Me.ComboBox3.AddItem rs.Fields(i).Value
i = i + 1
Loop
Call connectiontosql.connectiontosql
rs.Open JS, cn, adOpenKeyset, adLockOptimistic
For i = 0 To rs.RecordCount - 1
Me.ComboBox4.AddItem rs.Fields(i).Value
Next
rs.Close
End Sub
请注意,
RecordCount
并不总是返回您想要的内容,因此最好避免在循环中使用它,除非您确实需要它(在这种情况下,请检查Provider和cusortype是否支持RecordCount)。此外,您试图循环遍历记录集的记录(行),但读取的是字段(列)。通常,要循环一个记录集并将每个记录的第一个字段添加到组合框中,如下所示:
If Not rs.EOF And Not rs.BOF Then
Do
Me.combobox3.AddItem rs.Fields(0).Value
rs.MoveNext
Loop Until rs.EOF
End If
打开rs时,光标位于第一条记录上。如果没有记录,EOF和BOF都将为真。在Do循环中,rs.MoveNext
将光标前进到下一条记录
rs.Fields(0).Value
返回光标所在记录的第一个字段的值。如果需要其他字段,请按数字(以零开头)或名称(以引号括起)指定该字段。谢谢您的回答