MS-ACCESSのフォーム切り替え表示について
フォームA(少量データ)からフォームB(大容量データ)を呼び出して表示させる方法について
教えてください。
まず、フォームAは複数の個人名のボタンとサブフォームで全員の最新情報が表示される
ものを作っています。
この個人名のボタンをクリックするとフォームBにその個人の全情報を表示させる仕組みなのですが、フォームBは情報量が多い為、表示させるのに時間がかかります。
そこで下記のようなVBAを記述し、Do~LoopでフォームBが開くまでの時間を稼ごうと思っても
次の処理が行なわれてしまい、エラーになってしまいます。
Private Sub ボタン_Click()
DoCmd.OpenForm "フォームB"
Do Until SysCmd(acSysCmdGetObjectState, acForm, "フォームB") = acObjStateOpen
DoEvents
Loop
Application.Forms![フォームB].Controls![担当者名] = "担当A"
Me.フォームB.Requery
End Sub
これでフォームBが開くまで待ってから次のステップのフォームB内の条件設定や
Requery処理を行なうと思っているのですがうまくいきません。
DoEvents処理が入っているせいかと思い、はずしたのですがそれでもうまくいきません。
もともとはフォームBだけで運用していたのですがデータ量が増えて表示に時間がかかり
すぎるので新たに項目は同じで件数の少ない最新情報のみのテーブルを作成し、
それをもとにフォームAを作成しています。
ですのでフォームA,Bともに同じようなサブフォームになっており、またそれぞれの
サブフォームを構成するテーブルが異なる為に1つのフォームでの処理ができません。
拙い説明ですがどなたかご教授願います。