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

问题描述:

我有一个保存在具有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是保留关键字。