同じ問題に何らかの形で関連する他のいくつかの質問と回答をここに追加したいと思います。ポインタは、これらの質問に対する私自身の答えにつながるかもしれませんが、他の人の答えを閲覧することを躊躇しないでください!
エンタープライズ ソフトウェアとしての MS Access
MS-Access アプリケーションをテストする最良の方法
MS-Access で複数のプログラマーと作業する
MS-Access からの SQL サーバー GUIDS の使用に関する推奨事項
Access の主な制約の 1 つは、制限されたオブジェクト モデルであることを認めなければなりません。Form オブジェクトに独自のプロパティとメソッドを追加する可能性がないことに特に悩まされました。私は最近、2 つの追加オブジェクトを作成することで、この問題を効率的に解決できることを発見しました。
「AllMyForms」オブジェクトは、実際には 2 つのオブジェクト コレクションを維持します。1 つは標準の Access フォーム コレクションで、もう 1 つは「customForm」オブジェクトのすべてのインスタンスのコレクションです。両方のコレクションは、開かれたフォームの hwnd プロパティ (より具体的には、フォームのインスタンスの hwnd プロパティで、同じフォームの複数のインスタンスを開くことができます) でインデックス付けされます。
フォームのインスタンスのカスタム プロパティとメソッドをリストする「customForm」オブジェクト
このようにして、次のようなプロパティを参照できます。
accessForms:標準のプロパティとメソッドの参照
AllMyForms.accessForm(hwnd).name
.hwnd 値を使用して、アクセス フォームの .name プロパティを参照します。
ちなみに、次の debug.print でも同じ結果が得られます。
? screen.ActiveForm.name
? AllMyForms.accessForm().name 'default value for hwnd is screen.activeForm.hwnd'
カスタム フォーム:プロパティ
AllMyForms.customForm(hwnd).selectClause
フォームのインスタンスの基になるレコードセットを作成するために使用される SELECT 句を参照します
カスタム フォーム:メソッド
customForm オブジェクトで使用できる .agregate メソッドは、フォーム「列」の合計/最小/最大/平均 (つまり、連続フォームのコントロールの値の合計) を計算します。
AllMyForms.customForm().agregate("lineAmount","sum")
フォームの現在/アクティブなインスタンスに表示されるすべての「lineAmount」値の合計が得られます。