見出し画像

EUCを作ろう!6

データをTableに作成できたので、そのデータを制御するQueryについて書きたいと思う。
QueryはSQL(Structured Query Language)という言語のデータを操作する命令をSQL文を入力しなくても済むようにビジュアル化したモノだ。
ここでSQLについて簡単に説明する。
SQLはデータを定義する命令(DDL)と、データを操作する命令(DML)の二種類がある。
データを操作する命令(DML)には、以下の4種の命令(Accessで利用するQueryの種類)がある。
Accessでは、各Queryを自動化して起動する場合、MacroやVBAを利用する。
また、各QueryのSQL文を変更して動かす場合もMacroやVBAを利用する。
SELECT命令(選択Query) データを検索して結果を返す。
INSERT命令(追加Query) Tableに新たにデータ行を追加する。
UPDATE命令(更新Query) 既存のデータを更新する。
DELETE命令(削除Query) 既存のデータ行を削除する。
データを定義する命令(DDL)は、データベース内のTable、Query等のオブジェクトを作成、削除する命令だ。
Accessでは、DDLを自動化して使う場合、MacroやVBAを利用する。
今回は、Table等のオブジェクトの作成は、マニュアル(手動)で作成する。
QueryはSQL表示する事が出来る。
VBA等で細かいデータの操作をする場合、SQLのコードを変更する事がある。
SQLをQueryのSQL表示で書き込むことも可能だ。
※以下に基本的なQueryの操作の動画を設置する。(SQL文で事前にコードを作成。)

※INSERT Tableに新たにデータ行を追加する。の動画(項目の無いTableから項目の有るTableにINSERT)

※SELECT データを検索して結果を返す。の動画(上記処理のデータを表示)

※UPDATE 既存のデータを更新する。の動画(任意のフィールドのデータを更新する)

※DELETE 既存のデータ行を削除する。の動画(一部のデータを削除する)

Accessにはクエリー・ウィザードが用意されている。
この機能を使って重複Queryを作成してみる(他にも不一致Queryウィザード、クロス集計クエリウィザード、選択クエリウィザードがある)。
重複Queryは、任意のフィールドに重複したレコードが存在するかを返すQueryだ。
テキストデータをImportして、キーフィールド(索引項目・重複無しのフィールド)に重複レコードが存在するかを確認する。
※重複Queryの作成

※作成の結果、レコードが表示された場合は重複レコードが存在する。

Queryは非常に便利な機能で、SQLを覚えなくても、SQL表示にすれば、正しいAccessでのSQLの文法で作成してくれる。
SQLはAccess以外でも利用されており、使用されているシステム毎に方言が存在する。
また、SQLの基本的な機能は同じでも、SQL起動させる方法が違う場合が多い。
AccessでEUC(エンド・ユーザー・コンピューティング)を行う場合、SQL文を自分で打ち込んで作成することは、Errorを産み出すことになる場合が多いので、VBAでSQL文を利用する場合でも、Queryで作成したSQL文を参考にする方が、動く可能性が高い。

Accessのデータ制御の仕組みには2種類有る。
主にVBAでデータ操作を行う場合に意識する仕組みだ。
Accessのデータを制御するためのDAO(データ・アクセス・オブジェクト)
アクセス以外のDBに接続してデータを扱うためのADO(アクティブエックス・データ・オブジェクト)及びADOX(ADOの拡張版)
尚、他のデータベースを利用する場合ODBC(オープン・データベース・コネクティビティ)という、各DB毎のデータ接続用ドライバが必要になる。


いいなと思ったら応援しよう!