2014-06-11 24 views
0

我有一個名爲Contract_Applying_for的文本框,它在表單加載時被禁用,但我想要一個按鈕允許我編輯文本框的內容。使用按鈕啓用/禁用VBA中的文本框

當我添加一個按鈕,我得到帶有命令按鈕嚮導,所以我創建了一個名爲ToggleEnableButton宏它具有指令

RunCode Function Name "=ToggleEnableButton()" 

然後我寫的函數

Function ToggleEnableButton() 

    If Me.Contract_Applying_for.Enabled = True Then 
     Me.Contract_Applying_for.Enabled = False 
    Else 
     Me.Contract_Applying_for.Enabled = True 
    End If 
End Function 

這似乎會產生錯誤「成員已存在於此對象模塊從中派生的對象模塊中。」

的ToggleEnableButton_Click的代碼自動命令按鈕嚮導創建,並

Private Sub ToggleEnableButton_Click() 
On Error GoTo Err_ToggleEnableButton_Click 

    Dim stDocName As String 

    stDocName = "ToggleEnableMacro" 
    DoCmd.RunMacro stDocName 

Exit_ToggleEnableButton_Click: 
    Exit Sub 

Err_ToggleEnableButton_Click: 
    MsgBox Err.Description 
    Resume Exit_ToggleEnableButton_Click 

End Sub 

什麼我做錯了任何建議或更好的方法來處理這個。

看起來像一個非常簡單的事情,我試圖做,但相當長的囉嗦方法。

正如我曾嘗試使用一個複選框,而不是意見建議的Peekay,我寫

Private Sub chbToggleEdit_Click() 
If Me.chbToggleEdit.Value = False Then 
    Me.Contract_Applying_for.Enabled = False 
Else 
    Me.Contract_Applying_for.Enabled = True 
End If 
End Sub 

這給出了錯誤:「發生問題的Microsoft Access已與OLE服務器或ActiveX控件通信「。

+0

'ToggleEnableButton'其正確的,但需要你的整個代碼告訴什麼問題是 –

+0

這可能是更容易做到這一點使用複選框。您需要存儲「切換」按鈕的值。不確定一個命令按鈕是否存儲一個值。複選框可以。 – Peekay

+0

我剛剛嘗試使用複選框,而不是我將代碼添加到我的問題.. – hello123

回答

0

你能不能簡單地有:

Private Sub ToggleEnableButton_Click() 
On Error GoTo Err_ToggleEnableButton_Click 

ToggleEnableButton() 


Exit_ToggleEnableButton_Click: 
Exit Sub 

Err_ToggleEnableButton_Click: 
MsgBox Err.Description 
Resume Exit_ToggleEnableButton_Click 

End Sub 

你可以用你的形式背後的代碼申報的功能。

讓我知道如果這樣的作品,

+0

我已經試過這個,但不斷收到「Microsoft Access與OLE服務器或ActiveX控件進行通信時發生問題」。 – hello123

+1

這聽起來像是您的按鈕而不是代碼的問題。是否可以刪除按鈕並重新添加,而無需使用嚮導? –