?? fygsbms.cls
字號:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "fygsbms"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Collection" ,"fygsbm"
Attribute VB_Ext_KEY = "Member0" ,"fygsbm"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'局部變量,保存集合
Private mCol As Collection
'將一個“費用歸屬部門”對象加入集合
Public Sub Add(objfygsbm As fygsbm)
mCol.Add objfygsbm, "A" & objfygsbm.xuhao
'在加入對象時,最好同時加入其“KEY”屬性
'“KEY”屬性不可以是數字型,因此在前面隨便加
'一個字母,此處加了一個“A”
End Sub
Public Property Get Item(vntIndexKey As Variant) As fygsbm
Attribute Item.VB_UserMemId = 0
'引用集合中的一個元素時使用。
'vntIndexKey 包含集合的索引或關鍵字,
'這是為什么要聲明為 Variant 的原因
'語法:Set foo = x.Item(xyz) or Set foo = x.Item(5)
Set Item = mCol(vntIndexKey)
End Property
Public Property Get Count() As Long
'檢索集合中的元素數時使用。語法:Debug.Print x.Count
Count = mCol.Count
End Property
Public Sub Remove(vntIndexKey As Variant)
'刪除集合中的元素時使用。
'vntIndexKey 包含索引或關鍵字,這是為什么要聲明為 Variant 的原因
'語法:x.Remove(xyz)
mCol.Remove vntIndexKey
End Sub
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
'本屬性允許用 For...Each 語法枚舉該集合。
Set NewEnum = mCol.[_NewEnum]
End Property
Private Sub Class_Initialize()
'創建類后創建集合
Set mCol = New Collection
End Sub
Private Sub Class_Terminate()
'類終止后破壞集合
Set mCol = Nothing
End Sub
'按條件查找費用歸屬部門,以集合類的方式返回
Public Function Find(Optional ByVal str As String = "") As fygsbms
'定義用于存儲sql語句的臨時變量strSQL
Dim strSQL As String
'構造按條件查找費用歸屬部門的sql語句
strSQL = "Select * from fygsbm"
'如果傳入的參數str不為空,則繼續構造sql語句,其中采用“包含”的查詢方法
If str <> "" Then
strSQL = strSQL & " where dm like '%" & RealString(str) & "%'"
strSQL = strSQL & " or gsbmmc like '%" & RealString(str) & "%'"
End If
On Error Resume Next
'定義用于存儲查詢結果的數據集對象rs
Dim rs As Recordset
'執行相應的SQL語句,并用得到的結果集設置數據集對象rs
Set rs = Conn.Execute(strSQL)
'判斷是否找到符合條件的記錄,如果沒有找到,則給出錯誤提示
If rs.RecordCount = 0 Then
MsgBox "不存在符合條件的記錄!"
Set Find = Nothing
Exit Function
End If
Dim i As Long
'定義對應于單個費用歸屬部門的fygsbm類的對象
Dim objfygsbm As fygsbm
For i = Me.Count To 1 Step -1
Me.Remove (i)
Next i
'將查找到的所有費用歸屬部門信息添加到集合類objfygsbms中
For i = 1 To rs.RecordCount
'創建一個新的fygsbm類對象
Set objfygsbm = New fygsbm
'根據當前的費用歸屬部門記錄信息給新創建的objfygsbm對象的屬性賦值
With objfygsbm
.xuhao = rs("xuhao").Value
.dm = Trim(rs("dm").Value)
.gsbmmc = Trim(rs("gsbmmc").Value)
End With
'在集合objfygsbms類中添加一個objfygsbm對象
Me.Add objfygsbm
'清空objfygsbm對象,用于記錄下一個費用歸屬部門的信息
Set objfygsbm = Nothing
rs.MoveNext
Next i
'清空數據集對象rs
Set rs = Nothing
'設置該函數的返回值
Set Find = Me
Err.Clear
End Function
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -