2017-09-26 61 views
2

我試圖觸發按鈕,該按鈕將處理所選文檔的提取,一旦用戶雙擊表單中列出的文檔,如下面的屏幕截圖當用戶雙擊文檔時觸發一個按鈕private sub

ScreenShot

所以我的屬性去和配置:

Private Sub ParamName_DblClick(Cancel As Integer) 
call Forms!FormName.Extract_Click 
End Sub 

沒有成功,我也試過:

Private Sub ParamName_DblClick(Cancel As Integer) 
    Forms!FormName.Extract_Click 
    End Sub 

形式裏面,子的聲明如下:

Private Sub Extract_Click() 
    Dim dbs As DAO.Database 
    //.... //do work 
end sub 

我做錯了嗎?

+0

這是一張紙和一個窗體,或只是一個窗體? –

回答

2

簡答:你不能,即使你可以(或者在你可以的情況下),你也不應該。

較長的答案:不要直接在事件處理程序中實現任何邏輯。 調用從處理程序的邏輯:

Private Sub SomeControl_SomeEvent() 
    DoTheThing 
End Sub 
Public Sub DoTheThing() 
    'do stuff 
End Sub 

Public構件可以生活標準模塊中,因此可以通過任何東西的任何地方調用 - 某種形式從一個按鈕,或從另一個在另一個窗體上的按鈕,或者你需要從其中調用它的任何東西。

但是不要自己調用事件處理程序過程。事件處理程序處理事件,它們由VBA運行時調用:保持這種狀態並保持繁榮。

+0

非常好,我已經聲明瞭一個名爲Public Function ExtractFile()的函數,然後我可以在任何使用調用窗體(「MyFormName」)的地方調用它。ExtractFile – user3752718

+0

'Function'通常返回一個值,顯式的'Call'語法已經過時在過去的25年中有更好的一部分,但是這就是主意。 –

+0

你是否建議我使用'procedure'而不是'Function'並且刪除'Call'語法? PS:我是初學者,我想知道專家的反饋 – user3752718

相關問題