一つのフォームを使いまわす
解説
入力用と編集用フォームなどのように、基本デザインは同じでキャプション(表題)やコマンドボタンの名前・機能が異なるというようことは多い。
別々にフォームを作ってしまうと改造などのメンテナンスの際に二つのフォームを同時に直さなければならなくなる。
このような場合に、一つのフォームを共通に使いまわすこと良い。フォーム開くDoCmdオブジェクトのOpenargs引数を使えば実現できる。
使用例
次は同じフォームを追加ボタンで開いた場合と修正ボタンで開いた場合の違いである。フォームを開くDoCmdオブジェクトのOpenargs
引数により、フォームを開くときのイベントプロシージャで条件分岐させるSelect Caseステートメントを使って内容を変えている。
変更箇所はは「フォーム標題部」および3個のコマンドボタンの表示名である。
(「追加」ボタンで開いたとき)
※追加画面で必要なのは「保存」と「中止」ボタン。「削除」ボタンは不要なため、使用不可としている。
(「修正」ボタンで開いたとき)
※修正画面で必要なのは「修正実行」と「中止」および「削除」ボタンはである。
作成手順
- 例のようなフォームを一つ作り、コマンドボタンなどを加える。
フォーム名:「F_職務経歴入力」
コマンドボタン名:「Cmd_追加」「Cmd_削除」「Cmd_中止」の3個 - このフォームを開く元のフォーム上に「追加」ボタンと「修正」ボタンを設ける。
フォーム名:「F_職務経歴表示」
追加ボタン名:Cmd_追加
修正ボタン名:Cmd_修正 - 「追加」ボタンのイベントプロシージャ
Private Sub Cmd_追加_Click()
Dim stDocName As String '文字列型の変数を定義
stDocName = "F_職務経歴入力" '変数にフォーム名を代入
DoCmd.OpenForm stDocName, , , , , ,"追加" 'Openargs 引数に「追加」文字を与えてフォームを開く
End Sub - 「修正」ボタンのイベントプロシージャ
Private Sub Cmd_修正_Click()
Dim stDocName As String
stDocName = "F_職務経歴入力"
DoCmd.OpenForm stDocName, , , , , ,"修正" 'Openargs 引数に「修正」文字を与えてフォームを開く
End Sub - 「F_職務経歴入力」フォームの「開くとき」に作るイベントプロシ-ジャ
(この項終わり)