从多个值的参考表中填充组合框
问题描述:
我有一个保存在具有3组值的SQL-SERVER中的参考表。我试图做的是从该表中填充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
这正常运动,但我需要一个单独的功能,在裁判表中的每一组值。有没有办法把它合并起来,这样我就可以调用一个函数,并用适当的值加载3个组合框。谢谢!
答
只需使用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是保留关键字。