2016-07-14 46 views

回答

1

的錯誤信息是明確的:這是一個只能在設計視圖中設置屬性。

所以你必須切換視圖,設置屬性,切換回來。
我會把它放到一個標準模塊中,而不是放到表單模塊中。

Private Sub SwitchView_Click() 
    Call SwitchDefaultView(Me) 
End Sub 

' in standard module 
Public Sub SwitchDefaultView(frm As Form) 

    Dim sFrm As String 

    ' Make sure the current record is (and can be) saved 
    On Error Resume Next 
    frm.Dirty = False 
    If Err.Number <> 0 Then MsgBox Err.Description: Exit Sub 

    On Error GoTo 0 
    sFrm = frm.Name 
    ' Switch to Design view 
    DoCmd.OpenForm sFrm, acDesign 
    Forms(sFrm).DefaultView = 1  ' Continuous form 
    ' DoCmd.Save acForm, sFrm   ' optional 
    ' Switch back to Form view 
    DoCmd.OpenForm sFrm, acNormal 

End Sub 

雖然我想知道:通常一個表單是爲連續或單一形式設計的。我很難想象這個開關的用例。

+0

我終於明白,沒有這種方式可以直接從單一形式轉換爲連續形式。但是你提供了一個很好的解決方法。 –

0

第一個問題是您無法在數據表視圖中顯示按鈕,因此您可能必須使用Dbl_Click事件。

在任何方面,這樣的事情:

Private Sub SwitchView_Click() 

Select Case Me.CurrentView 
    Case 1 
      'Currently in form view 
      DoCmd.RunCommand acCmdDesignView 
    Case 2 
      'Currently in datasheet view 
      DoCmd.RunCommand acCmdFormView 
    Case Else 
      'Must be design view (0) or some as yet undefined view 
      'So do nothing. 
End Select 
+0

表單從未在數據表視圖中。我在問如何從單一窗體(可以顯示按鈕)轉到連續窗體。 –

+0

加我的表格不是子表格。我試着運行你的代碼,它給了我這個錯誤「運行時錯誤'2046':命令或操作'SubFormDatasheet'現在不可用。」 –

相關問題