|
こんばんは、YU-TANG です。
> というエラーがでます。
> Private Sub d14_Click(ByRef avarData())
これ、ラベルですよね。
ラベルのクリック時イベントに avarData という引数はありません。
勝手に追加しても、認識してくれるわけではありません。
直接の回答にはなっていないと思いますが、こういう場合は
WithEvents とクラスで実装するのが定石です。
まずクラスモジュールを挿入して、以下のように記述します。
Option Compare Database
Option Explicit
Private WithEvents lbl As Access.Label
Private Sub Class_Terminate()
Set lbl = Nothing
End Sub
Public Property Set Label(ByVal vNewValue As Access.Label)
Set lbl = vNewValue
lbl.OnClick = "[Event Procedure]"
End Property
Private Sub lbl_Click()
Screen.ActiveControl.Value = lbl.Tag
End Sub
クラスモジュール名は任意ですが、とりあえずここでは「clsDateLabel」
という名前を付けたと仮定します。
次に、フォームの(クラス)モジュール先頭で次のように宣言。
Option Compare Database
Option Explicit
Dim dic As Object ' クラス保持用 Dictionary オブジェクト
Private Sub Form_Close()
Set dic = Nothing
End Sub
最後に、Form_Load() のループ中で次のように初期化します。
> Me(tsuki(j) & i).Caption = Day(p)
Me(tsuki(j) & i).Tag = p
Set dic(tsuki(j) & i) = New clsDateLabel ' インスタンス作成
Set dic(tsuki(j) & i).Label = Me(tsuki(j) & i)
これで、ラベルのクリック時イベントプロシージャを個別に
作成しなくても、クラスが勝手に処理してくれるはずです。
それでは。
|
|