2009-03-25 2 views
2

これは簡単なことだと思いますが、前にこれをやったことがありますが、AccessでUIプログラミングを行ってからしばらくしています。私が行う必要があるのは、フォームにボタンを配置して、サブフォームのデータシートとフォームビューを切り替えることです。実行時にVBAコードでMS Accessサブフォームのビューを変更するにはどうすればよいですか?

私はdefaultviewプロパティを見つけましたが、フォームが開いた後にフォームの表示を切り替えるようなものは何もありません。

基本的に私は、私は自分自身でそれを見つけた

sfEmployeeBatchEntry.Form.??? = acFormDS 
+0

連続フォームビューにする方法 –

+0

コメントに質問するのではなく、サイトで別の質問をすることをお勧めします。 – JohnFx

答えて

7

..私は、次のコードを記入することができますプロパティを必要としています。単純なプロパティやメソッドの代わりに、愚かでぎこちないRunCommand構文をコントロールクラスやフォームクラスで使用していたので、私はそれを見逃していました。

後悔のため、ここに答えがあります。

'You have to set focus to the subform control or the change view call will' 
'fail (UGH!)' 
MyForm.mySubFormControl.SetFocus 

'Change to datasheet view...' 
DoCmd.RunCommand acCmdSubformDatasheet 

'Change to Form View...' 
DoCmd.RunCommand acCmdSubformFormView 
+0

連続フォームビューにする方法 –

+0

私のテストでは、フォームがデザインビューにある間、デフォルトビュープロパティが "連続フォーム"に設定されている場合、連続フォームは 'DoCmd.RunCommand acCmdSubformFormView'でのみ表示されます。既定のビューが他のものに設定されている場合、データシートと単一フォームビューの間でのみ切り替わります。私は、DefaultViewが実行時に変更できるかどうか、さらにテスト/調査をしませんでした –

0

私はさまざまなサイトで見つかったさまざまなソリューションを試しました。いくつかは不必要に複雑に思えました。私は混乱のいくつかをきれいにし、これは私のニーズに合って最適であることがわかった。

Dim intView As Integer 
intView = Me.Form.CurrentView 

If intView = 1 Then 

    DoCmd.RunCommand (acCmdSubformDatasheetView) 
    Else 


    DoCmd.RunCommand (acCmdSubformFormView) 
    End If 

Exit Sub 
関連する問題