| タイトル | : フォーム処理のモジュール |
| 記事No | : 74102 |
| 投稿日 | : 2010/04/23(Fri) 10:57 |
| 投稿者 | : Kato |
OS:XP Access Version:2002
ある書籍で共通モジュールの活用方法について詳しく記載されており、フォーム処理のモジュール化の例として次のようなコードが紹介されています。 (簡潔にするためエラー処理は省略しました。)
Sub OpenForm(FormName)
Dim stDocName As String Dim stLinkCriteria As String stDocName = FormName DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
このコードの変数で疑問があります。
1) わざわざstDocNameを設定する理由はあるのでしょうか? 単に、 DoCmd.OpenForm FormName とした方が簡潔なのでは、と感じています。
2) stLinkCriteriaはwhere条件が必要なケースのみ記述するものと理解しています。 OpenFormの引数は「FormName」だけなのでwhere条件付きでこのプロシージャを呼び出すことはできないように思うのですが、敢えて変数宣言して、なおかつ
DoCmd.OpenForm stDocName, , , stLinkCriteria
とするのはなぜでしょうか(意味があるのか?)。
あるいは、このOpenFormの定義でも呼び出し側からwhere条件を渡す方法があるのでしょうか?
自分の乏しい知識では、
Sub OpenForm(FormName, Where)
Dim stDocName As String Dim stLinkCriteria As String stDocName = FormName stLinkCriteria = Where DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
のように引数として条件を渡せるようにして初めて意味を持つように思えるのですが、自分の知識の及ばない理由があるのでしょうか。
以上の点について解説お願いします。
|