#381 | データシートのカレント行をその場で単票表示に切り替える方法 | フォーム、VBA | |
フォームでデータ入力や閲覧を行う場合、データの構成や量などによって、データシート(もしくは表形式)の方が見やすかったり、単票形式の方が入力しやすかったりと、ケースによって最適な画面形式は異なります。 そこでここでは、通常はデータシート形式のフォームを表示し、複数レコードにまたがる視認性を確保しながらも、一方で、その編集作業を行う場合は簡単に単票形式のフォームに切り替えることができる、といった画面の作り方を紹介します。 ここでは次のようなデザインのフォームを用意しました。 "顧客マスタ_sub"という名前のサブフォームと、"cmd切り替え"という名前のコマンドボタンが配置されています。そして、この"cmd切り替え"をクリックすることによって、データシートと単票を交互に切り替えるようにします。なお、顧客マスタ_subフォームについては、そのデザインとして、「既定のビュー」プロパティを"データシート"に設定しておきます。 そして、cmd切り替えのクリック時イベントプロシージャを次のように記述します。ここでの留意事項として、RunCommandメソッドの引数には、"acCmdFormView"や"acCmdDatasheetView"ではなく、"acCmdSubformFormView"や"acCmdSubformDatasheetView"を指定します。これは、ビューを切り替える対象がサブフォームだからです。もし通常のメインフォーム側を切り替えたい場合には、"acCmdFormView"を指定します。 Private Sub cmd切り替え_Click() '[データシート<->単票表示]ボタンクリック時 '現在のビューの形式を保存するStatic変数 Static intCurView As Integer Me!顧客マスタ_sub.SetFocus If intCurView = 0 Then 'このイベントがはじめて呼ばれたとき 'サブフォームは既定のビューがデータシートにデザインされて 'いるので、切り替え前のビューの状態を"データシート"に設定 intCurView = 1 End If Echo False If intCurView = 1 Then 'データシートなら単票形式(フォームビュー)に切り替え DoCmd.RunCommand acCmdSubformFormView '現在のビューの変数を"単票形式"に切り替え intCurView = 2 Else '単票形式ならデータシートに切り替え DoCmd.RunCommand acCmdSubformDatasheetView '現在のビューの変数を"データシート"に切り替え intCurView = 1 End If Echo True End Sub 実行例: [データシート<->単票表示]ボタンをクリック もう一度[データシート<->単票表示]ボタンをクリック |
|||
|
Copyright © T'sWare All rights reserved |