cGoodsTypes是个集合,cGoodsType是个类,为什么向集合添加对象是,前面的对象都被覆盖,假如:第一个对象为aa,当添加第二个对象bb后,vgoodstypes(1).XXX就变成bb了,然后第二个对象也是bb,当添加第三个对象cc时,全部就变成cc了Function GetGoodsType(ByRef vGoodsTypes As cGoodsTypes) As Boolean
Dim vGoodsType As New cGoodsType
Dim rst As New ADODB.Recordset
Dim strSql As String
Dim i As Integer
strSql = "SELECT * FROM DD_GoodsType "
rst.Open strSql, gConn, adOpenStatic, adLockReadOnly, adCmdText
If rst.BOF And rst.EOF Then GoTo PROC_EXIT
For i = 1 To rst.RecordCount
With vGoodsType
.ShortName = rst!ShortName
.GoodsTypeID = rst!GoodsTypeID
.GoodsTypeName = rst!GoodsTypeName
End With
vGoodsTypes.Add vGoodsType, ""
rst.MoveNext
Next i
GetGoodsType = True
PROC_EXIT:
Exit FunctionPROC_ERR:
GetItem = False
'* ErrHandler *********************
GoTo PROC_EXITEnd Function
Dim vGoodsType As New cGoodsType
Dim rst As New ADODB.Recordset
Dim strSql As String
Dim i As Integer
strSql = "SELECT * FROM DD_GoodsType "
rst.Open strSql, gConn, adOpenStatic, adLockReadOnly, adCmdText
If rst.BOF And rst.EOF Then GoTo PROC_EXIT
For i = 1 To rst.RecordCount
With vGoodsType
.ShortName = rst!ShortName
.GoodsTypeID = rst!GoodsTypeID
.GoodsTypeName = rst!GoodsTypeName
End With
vGoodsTypes.Add vGoodsType, ""
rst.MoveNext
Next i
GetGoodsType = True
PROC_EXIT:
Exit FunctionPROC_ERR:
GetItem = False
'* ErrHandler *********************
GoTo PROC_EXITEnd Function
For i = 1 To rst.RecordCount
set vGoodsType=new cGoodsType '加上这句看看
With vGoodsType
.ShortName = rst!ShortName
.GoodsTypeID = rst!GoodsTypeID
.GoodsTypeName = rst!GoodsTypeName
End With
vGoodsTypes.Add vGoodsType, ""
rst.MoveNext
Next i