使用多个值填充参考表中的组合框

时间:2015-11-19 15:54:56

标签: sql-server combobox vb6

我有一个保存在SQL-SERVER中的ref表,它有3组值。我尝试做的是用该表中的3组不同值填充3个组合框。

Name     ID      Label      ORDER
Sports   1001    Soccer     1
SPorts   1002    Football   2
Sports   1003    Golf       3
Sports   1004    Basebal    4
Holidays 2001    Easter     1
Holidays 2002    Xmas       2
Holidays 2003    Thxgiving  3

和另一组值。我试图用一个只有运动的组合框来填充一个组合框,一个用HOlidays填充,另一个用另一组。我能够填充它们但有三个函数函数,每个函数看起来像这样:

Set g_RS = New ADODB.Recordset
g_strSQL = "Select Name, ID, Label, Order from tblText_References where Name='Sports' Order By Order ASC"
Debug.Print g_strSQL
g_RS.Open g_strSQL, g_cnDatabase, adOpenStatic
cboSport.AddItem vbNullString
cboSport.ItemData(cboSport.NewIndex) = 0
While Not g_RS.EOF
    cboSport.AddItem g_RS("Label")
    cboSport.ItemData(cboSport.NewIndex) = g_RS("ID")
    g_RS.MoveNext
Wend
g_RS.Close

这适用于运动,但我需要为ref表中的每组值分别设置一个单独的函数。有没有办法组合它,以便我调用一个函数,它加载3个具有适当值的组合框。谢谢!

1 个答案:

答案 0 :(得分:0)

只需使用Recordset的Filter属性即可。在上面的代码中:

Set g_RS = New ADODB.Recordset
'REMOVE THE WHERE CLAUSE FROM THE SQL STATEMENT
g_strSQL = "Select Name, ID, Label, Order from tblText_References Order By Order ASC" 
g_RS.Open g_strSQL, g_cnDatabase, adOpenStatic
g_RS.Filter = "Name = 'Sport'" 'ADD THIS LINE
cboSport.AddItem vbNullString
cboSport.ItemData(cboSport.NewIndex) = 0
While Not g_RS.EOF
    cboSport.AddItem g_RS("Label")
    cboSport.ItemData(cboSport.NewIndex) = g_RS("ID")
    g_RS.MoveNext
Wend

Filter属性求值为有效的SQL WHERE子句。因此,请将过滤器更改为" Name =' Holiday'",填充下一个ComboBox,依此类推。

P.S。在某些SQL版本中,您可能需要在Order字段的引用旁边放置括号,因此:[Order],因为Order是保留关键字。