2016-07-14 135 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'现在不可用。” –

相关问题