- クラス
- イベントを宣言する。
RaiseEventステートメントでイベントを発行する。 - フォーム
- クラスをモジュール変数でWithEventsを指定して宣言する。
イベント関数は名前を"クラス変数名_イベント名"にする。
- 例)ボタンを押すと、リストビューに抽出されたデータが表示される
●クラス:ExtractData
Public Event OnData(ByVal Name As String, ByVal Score As Long, List As Control)
Public Sub ExtractData(ByVal ScoreMin As Integer, ByVal ScoreMax As Integer, List As Control)
Dim SQL As String
SQL = "select * from スコアテーブル where スコア between " & CStr(ScoreMin) & " and " & CStr(ScoreMax)
With CurrentDb.OpenRecordset(SQL, dbOpenForwardOnly)
Do Until .EOF
RaiseEvent OnData(!名前, !スコア, List)
.MoveNext
Loop
.Close
End With
End Sub
●フォーム
Private WithEvents ed As ExtractData
Private Sub Exec_Click()
ScoreList.ListItems.Clear
Set ed = New ExtractData
ed.ExtractData 80, 95, ScoreList
End Sub
Private Sub ed_OnData(ByVal Name As String, ByVal Score As Long, List As Control)
With List.ListItems.Add(, , Name)
.SubItems(1) = CStr(Score)
End With
End Sub