私はMainForm
と呼ばれるフォームを持ってsubForm
と呼ばれるサブフォームがあります。また、MainForm
の多くのボタンは、クラスモジュールを作成しました。すべてのボタンに対してOnClick
イベントを処理し、モジュール名はclassButtons
です。クラスモジュールでMS Access 2013、サブフォーム操作クラスモジュールを破棄
コード:
MainForm
の
Open
場合に
Public WithEvents cButtons as Access.CommandButton
Dim tmpValue as String
Private Sub cButtons_Click()
Select Case cButton.Name
Case "ButtonA"
MainForm.subForm.Requery
Case "ButtonB"
Let tmpValue = subForm.ComboBox1.Value
DoCmd.RunSQL "update sometable set somefield='" & tmpValue & "'"
Case "ButtonC"
DoCmd.RunCommand acCmdUnhideColumns
End Select
End Sub
、私は次のコードを持っている:MainForm
が開かれるとその後
For i = 0 to Me.Controls.Count - 1
If Left(Me.Controls(i).Name,6) = "cmdbtn" Then
set btnClass = New classButtons
set btnClass.cButtons = Me.Controls(i)
btnClass.cButtons.OnClick = "[Event Procedure]"
mdPublic.buttonColl.Add btnClass 'buttonColl is a collection variable declared in another module called "mdPublic"
End If
Next
、すべての3つのボタンの作品をボタンAまたはボタンBをクリックすると、3つのボタンはすべて停止します。
ButtonAとButtonBからsubForm
操作を削除しようとしましたが、問題が消えていることがわかりましたので、subForm
操作でクラスモジュールを "破棄"すると思います。
しかし、私はその操作が必要です、誰もがアイデアを持っていますか?ありがとうございました !!!!!
私はこの質問を投稿する前に十分なテストをしていませんでした。真実は です。サブフォームだけでなく、メインフォームのコンボボックスから値を取得しようとした場合でも、クラスモジュールも破棄してください。それから私は新しい空のプロジェクトを作成しようとしました、すべてがうまくいって、私の現在のプロジェクトに戻って、再び働かないでください。 2つのプロジェクトの唯一の違いはテーブルですが、テーブル内のデータがクラスモジュールに影響を及ぼすとは思いません。 – Rick