1.Accessのクエリは13種類ある
下記図は、Microsoft社が公開している、Accessクエリの種類を示す定数値のリスト。13種類の定数が定義されている。
→実際に手元のAccessで確認できたのは9種類のみ
QueryDef.Type プロパティ (DAO)
| 定数 | クエリの種類 |
|---|---|
| dbQAction | Action |
| dbQAppend | Append |
| dbQCompound | Compound |
| dbQCrosstab | Crosstab |
| dbQDDL | Data-definition |
| dbQDelete | Delete |
| dbQMakeTable | Make-table |
| dbQProcedure | Procedure (ODBCDirect workspaces only)NOTE: ODBCDirect workspaces are not supported in Microsoft Access 2013. Use ADO if you want to access external data sources without using the Microsoft Access database engine. |
| dbQSelect | Select |
| dbQSetOperation | Union |
| dbQSPTBulk | Used with dbQSQLPassThroughto specify a query that doesn’t return records (Microsoft Access workspaces only). |
| dbQSQLPassThrough | Pass-through (Microsoft Access workspaces only) |
| dbQUpdate | Update |
Accessアプリで確認できた9種類
| 定数名 | Accessアプリ上の表示 |
|---|---|
| dbQSQLPassThrough | SQLパススルークエリ |
| dbQCrosstab | クロス集計クエリ |
| dbQDDL | データ定義クエリ |
| dbQMakeTable | テーブル作成クエリ |
| dbQSetOperation | ユニオンクエリ |
| dbQUpdate | 更新クエリ |
| dbQDelete | 削除クエリ |
| dbQSelect | 選択クエリ |
| dbQAppend | 追加クエリ |

2.残りの4種類について
| 定数名 | わかっている情報 |
|---|---|
| dbQProcedure | 「ODBCDirect」という現在はサポートされていない技術に関連するらしい Access2000+ADOを使ったシステムが現存すればあるいは・・・? |
| dbQCompound | 「compound」=混ぜる、合成する この定数についてはインターネット情報すら見つからず。 単に複雑なSELECT文を記述しても通常は選択クエリになるだけ。 |
| dbQSPTBulk | SQLパススルークエリのレコードを取得しない版という位置づけのよう。 しかし単にUPDATE文に変更するだけではAccessアプリ上のアイコンは変わらない。 |
| dbQAction | いわゆる追加・更新・削除・テーブル作成クエリの総称としての「アクションクエリ」とは別?。定数の存在理由が不明。 |
参考
「QueryDef.Type プロパティ (DAO)」
https://learn.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/querydef-type-property-dao
「データ定義クエリを使用してテーブルまたはインデックスを作成または変更する」
https://support.microsoft.com/ja-jp/office/データ定義クエリを使用してテーブルまたはインデックスを作成または変更する-d935e129-229b-48d8-9f2d-1d4ee87f418e
「クエリを実行する」
https://support.microsoft.com/ja-jp/topic/クエリを実行する-eb6f9f79-28de-468f-a464-c6f7a7f09f18
定数表
| 定数名 | Accessアプリ上の表示 | 内部値(2進数) |
|---|---|---|
| dbQSQLPassThrough | SQLパススルークエリ | 112 0b0111_0000 |
| dbQCrosstab | クロス集計クエリ | 16 0b0001_0000 |
| dbQDDL | データ定義クエリ | 96 0b0110_0000 |
| dbQMakeTable | テーブル作成クエリ | 80 0b0101_0000 |
| dbQSetOperation | ユニオンクエリ | 128 0b1000_0000 |
| dbQUpdate | 更新クエリ | 48 0b0011_0000 |
| dbQDelete | 削除クエリ | 32 0b0010_0000 |
| dbQSelect | 選択クエリ | 0 0b0000_0000 |
| dbQAppend | 追加クエリ | 64 0b0100_0000 |
| 定数名 | わかっている情報 | 内部値(2進数) |
|---|---|---|
| dbQProcedure | 「ODBCDirect」という現在はサポートされていない技術に関連するらしい Access2000+ADOを使ったシステムが現存すればあるいは・・・? | 224 0b1110_0000 |
| dbQCompound | 「compound」=混ぜる、合成する この定数についてはインターネット情報すら見つからず。 単に複雑なSELECT文を記述しても通常は選択クエリになるだけ。 | 160 0b1010_0000 |
| dbQSPTBulk | SQLパススルークエリのレコードを取得しない版という位置づけのよう。 しかし単にUPDATE文に変更するだけではAccessアプリ上のアイコンは変わらない。 | 144 0b1001_0000 |
| dbQAction | いわゆる追加・更新・削除・テーブル作成クエリの総称としての「アクションクエリ」とは別?。定数の存在理由が不明。 | 240 0b1111_0000 |


コメント