Microsoft Access の Navigation Pane にある Group を VBA で変更する方法です。
DoCmd のメソッドで提供されていれば助かるのだが、残念ながら見当たらない。 システムテーブルを直接編集して、CREATE したオブジェクトをグループに追加します。
今回の前提だと、手動で作成したグループに、VBA でオブジェクトを追加します。
使用するシステムテーブルと、その項目
MSysNavPaneGroups で必要な項目
|
Id |
Name |
|
一意のId |
グループ名 |
(例) |
9 |
グループ1 |
MSysNavPaneGroupToObjects で必要な項目
|
GroupID |
Id |
Name |
ObjectID |
Position |
|
MSysNavPaneGroupsのId |
一意のId |
任意の項目 |
MSysObjectsのId |
表示順 |
(例) |
9 |
15 |
テーブル1 |
86 |
1 |
MSysObjects で必要な項目
|
Id |
Name |
|
一意のId |
名称1 |
(例) |
86 |
テーブル1 |
グループに登録する手順
- VIEW 等のオブジェクトを CREATE
- MSysObjects から、そのオブジェクトの Id を検索
- MSysNavPaneGroups から、追加するグループの Id を検索
- MSysNavPaneGroupToObjects から、Idの最大値+1を算出(一意の Id)
SELECT Max(Id) + 1 FROM MSysNavPaneGroupToObjects
- MSysNavPaneGroupToObjects から、Position の連番を算出、開始は1(Position に登録する連番)
SELECT Nz(Max(Position), 0) + 1 FROM MSysNavPaneGroupToObjects
WHERE GroupID = [追加するグループの Id]
この結果を元に、MSysNavPaneGroupToObjects にレコードを追加
Flags | 0(固定値) |
GroupID | 追加するグループの Id |
Icon | 0(固定値) |
Id | 一意の Id |
Name | 追加するオブジェクトの名称(任意) |
ObjectID | 追加するオブジェクトの Id |
Position | 連番 |