我在我的Access項目中有一個表格,名爲MainForm
,有一個子表格subForm
,同時還有很多按鈕,同時我創建了一個類模塊處理所有按鈕的OnClick
事件,模塊名稱爲classButtons
。MS Access 2013,Subform操作破壞類模塊
代碼的類模塊中:
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
在Open
事件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
然後,一旦MainForm
被打開,所有的3名按鈕的作品好,但是一旦ButtonA或ButtonB被點擊,所有3個按鈕將停止工作。
我試圖從ButtonA和ButtonB中刪除subForm
操作,發現問題消失了,所以我猜subForm
操作只是「銷燬」類模塊。
但我確實需要這些操作,任何人有任何想法?謝謝 !!!!!
對不起,我沒有做足夠的測試之前,我發佈這個問題,事實是: 不僅是子窗體,即使我試圖從一個組合框的值在主窗體,或只是重新查詢的主窗體,它會也破壞了課程模塊。然後我試着創建一個新的空白項目,一切正常,返回到我當前的項目,不再工作。這兩個項目之間唯一的區別是表格,但我不認爲表格中的數據會對班級模塊產生任何影響,這是驅動堅果! – Rick