2016-07-14 2 views
2

ボタンのクリックでビューを変更するボタンをフォームに配置したいと考えています。 私は、このサブルーチンに入れてみました:実行時にMicrosoft Accessフォームビューを単一フォームから連続フォームに変更するにはどうすればよいですか?

Pricate Sub SwitchView_Click() 
    Me.DefaultView = 1 
End Sub 

しかし、それを実行している時に、私は

Run-time error '2136': To set this property, open the form or report in Design View. 

がどのように私はこれを解決するのですと言うエラーが発生しましたか?

答えて

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'は現在利用できません。 –

関連する問題