プログラミングインターフェース
 
以前に勉強したADOはデータベースにアクセスするための、プログラミングインターフェースです。
これを使うと簡単に外部のデータベースにアクセスできます。
RunSQLとの使い分けですが、複雑なループ処理やレコードセットを使うときはこちらを使います。
また処理が速い上に、LAN上にあるOracleなどの他のアプリケーションへも接続できたりします。
今回はADOでSQLにアクセスし、実行してみましょう。
 
今回もCDアルバム管理ソフトのテーブルを使用します。前回は削除を行ったので今度はテーブルにデータを追加してみましょう。
VBのエディタを開いて、新規モジュールを作成し以下を記述します。
解説は後述しますので、入力できたら適当なモジュール名をつけて実行してみてください。
「アーティスト名」と「タイトル名」に指定したデータが入力されました。
では、このコードがどのような内容なのか見ていきましょう。
 
エラー回避。エラーがあれば、ラベル「エラー」へ飛びます。
 
データベースと接続する際に使用するADOのコネクションオブジェクトを宣言し、作成しています。ここではオブジェクト変数Cnとして宣言します。
次で変数StrSQLを宣言しています。
 
先ほど宣言した変数Cnにデータベースの参照を割り当て、Connectionプロパティでデータベースをオープンします。今回はテーブルとVBAコードが同じMDB内にあるのでApplication.CurrentProjectという指定で接続できます。
 
変数StrSQLにSQL命令文を格納します。データを追加するのでINSERT文を使いましょう。
ここでは「アーティスト名」「タイトル名」の列に各「追加データ」を追加します。
ADOのSQL文で改行するときは「& _」を挟みます。
 
一行目…ADOオブジェクトのBeginTransメソッドでトランザクションを開始します。
レコードの変更や削除などの直接データに影響を及ぼす処理をトランザクションといいます。SELECTなどは変化を生じないので違います。
BeginTransを行うとトランザクションを終了するまでレコードを占有することができます。
二行目…ADOコネクションオブジェクトのExecuteメソッドを使用して、SQLを実行します。
 
CommitTransメソッドで実行結果を反映し現在のトランザクションを終了します。
 
データベースをクローズします。開けっぱなしではいけません。
オブジェクト変数Cnをクリアします。使い終わったオブジェクト変数は必ずクリアしておきましょう。
 
エラー処理です。エラー番号と、Descriptionプロパティでエラー番号を元にメッセージを出力します。
 
基本的には
 

コネクションオブジェクト変数の宣言と作成

SQL命令文用の変数の作成

データペースのオープン

トランザクションの開始・SQLの実行

実行結果を反映し、トランザクションを終了

データベースのクローズ・オブジェクト変数のクリア

 
という流れでできています。もっと簡略化すると
 

事前準備 → オープン → 実行 → 後片付け

 
になりますね。この流れを念頭において組み立てると整理しやすいでしょう。
 
 
 

 

 
 
(C)1999-2003 BE CORPORATION All rights reserved.Terms of Use. Privacy Policy.