数组或集合collection的使用解决方法

数组或集合collection的使用
现在的系统里面下拉列表比较多,每个列表如果每次都去读取数据库的话,页面load的比较慢。所以想做些改进,想在系统开始的时候就把这些数据读出来,放在全局变量中。
我是vb的初学者,对语法什么的不熟悉。看了写资料感觉collection可能更合适些。于是
1.   在module中声明:
Public   co   as   new   collection

2.   在一个系统初始化的方法中加入值
co.additem   " ",   " "
...

3.   有一个公用方法,根据collection组织combo:
'得到下拉
Public   Sub   getCombo(ByRef   Combo1   As   ComboBox,   ByVal   co   As   collection)
      //这里好像不可以使用co了啊~~
End   Sub

本来这个思路自我感觉良好的,可是到了第3步就行不通了啊(提示不出了),怎么回事?collection不可以作为参数传递吗?

或者大家有更好的方法也可以提示我一下,我对语法不熟悉,欢迎详细,谢拉~~



------解决方案--------------------
模块中:
Public co As New Collection
Public Function xx(ByVal co As Collection)
Debug.Print co.Item(2)
End Function
窗口中
Private Sub Command1_Click()
xx co
End Sub

Private Sub Form_Load()
co.Add "123 "
co.Add "1503 "

End Sub
一点儿问题也没有啊
------解决方案--------------------
首先肯定是可以做参数的,不管是byval 还是 byref
然后你都已经是 public 了,直接用吧,不要多余的参数了。

------解决方案--------------------
检查代码,搞清楚错误的语句位置。

看以下代码:
我这里没你那数据库,我用99个字符代替。新建一个 form,放一个 combo 控件。

然后贴入下面的代码:


Public cCity As New Collection

Public Sub getCityCollection()
Dim i As Integer
For i = 1 To 99
cCity.Add "城市 " & CStr(i)
Next
End Sub


Public Sub getComboCity(ByRef Combo1 As ComboBox)
Dim i
For i = 1 To cCity.Count
Combo1.AddItem (cCity(i))
Next
End Sub

Private Sub Form_Load()
getCityCollection '建立集合元素

getComboCity Combo1 '将集合内容加入列表控件
End Sub