SSブログ

VBA ウィンドウを切り替える [VBA]

 複数のウィンドウを開いた状態で、目的のウィンドウに切り替える方法です。
 切り替えたいウィンドウがフォームの場合は、SetFocusが使えますが、その他のテーブル・クエリなどは、SetFocusメソッドがありませんので、この方法は使えません。

 テーブル・クエリなどのウィンドウに切り替えたい場合は、DoCmd.SelectObjectを使用します。

・構文
DoCmd.SelectObject ObjectType , ObjectName , InNavigationPane

・引数

ObjectType … 必須。オブジェクトの種類を、AcObjectTypeクラスの定数で指定します。

名前 説明
acDatabaseProperties 11 Database プロパティ
acDefault -1  
acDiagram 8 データベースダイアグラム (Access プロジェクト )
acForm 2 フォーム
acFunction 10 関数
acMacro 4 マクロ
acModule 5 モジュール
acQuery 1 クエリ
acReport 3 レポート
acServerView 7 サーバー ビュー
acStoredProcedure 9 ストアドプロシージャ (Access プロジェクト )
acTable 0 テーブル
acTableDataMacro 12 データ マクロ



ObjectName … 選択するオブジェクトの名前を文字列で指定します。

InNavigationPane … データベースウィンドウの項目を選択する場合はTrue、開いているウィンドウを選択する場合はFalse(既定値)を指定します。

 例えば、テーブル「TMTDFK」を選択する場合は、
DoCmd.SelectObject acTable, "TMTDFK", False
 と、します。

 現在のウィンドウが最大化されていない状態で、最小化されているウィンドウを選択しても、ウィンドウは最小化されたままになります。
 この場合は、選択後DoCmd.Restoreなどを行う必要があります。


VBA ウィンドウの最大化 [VBA]

  ACCESSの中に表示されているウィンドウではなく、ACCESS自体のウィンドウを最大化する方法です。

・最大化
DoCmd.RunCommand acCmdAppMaximize

 その他、ACCESSウィンドウ操作関連です。

・最小化
DoCmd.RunCommand acCmdAppMinimize

・元のサイズに戻す
DoCmd.RunCommand acCmdAppRestore

 他に、ウィンドウサイズの変更、ウィンドウの移動を行う、
DoCmd.RunCommand acCmdAppMove
DoCmd.RunCommand acCmdAppSize

 も、あるのですが、パラメタを指定して、目的の状態にするのではなく、その操作を行う状態にするだけで、移動やサイズ変更の操作が必要になります。
 実質的に、これは使えないと思います。

 あと、DoCmd.RunCommandは、ACCESSのバージョンが古いと、使えないかも。
 確認は、2010で行っています。


フォーム RecordsetType・レコードセット プロパティ [フォーム]

 フォームのプロパティで、「データ」タブにある「レコードセット」についてです。

 あまりこの項目を意識する必要はないと思うのですが、いちおうどんな物か知っておくと良いと思います。

 設定できる内容は、以下の3つ。

設定値 内容
ダイナセット 1 つのテーブルまたは一対一のリレーションシップが設定されたテーブルのフィールドに連結されているコントロールを編集できます。一対多のリレーションシップが設定されたテーブルのフィールドに連結されているコントロールの場合は、テーブル間で連鎖更新 (連鎖更新: テーブル間に参照整合性が設定されているリレーションシップにおいて、主テーブルでレコードを変更すると、関連テーブルのすべての関連レコードが更新されることです。)が有効に設定されていない限り、"一" 側の結合フィールドからデータを編集することはできません。(既定値)
ダイナセット (矛盾を許す) フィールドに連結されたすべてのテーブルとコントロールを編集できます。
スナップショット フィールドに連結されたテーブルまたはコントロールは編集できません。

 内容は、ヘルプから引用しました。
 各設定値の内容を、順に説明します。

続きを読む


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。