Excel VBA ADOを使用してレコードの操作をするSQL文を実行する

スポンサーリンク
スポンサーリンク

レコードの操作するSQL文を実行する方法

ADO(ActiveX Data Objects【アクティブエックスデータオブジェクツ】)で
SQL文を実行するには
Command【コマンド】オブジェクト
Execute【エクスキュート】メソッドを使用します。
Execute【エクスキュート】は「実行」という意味があります。

「実行」する準備として
外部データベースとの接続が確立されている
Connection【コネクション】オブジェクトの
ActiveConnection【アクティブコネクション】プロパティを指定し
実行したいSQL文をCommand【コマンド】オブジェクトの
CommandText(コマンドテキスト】プロパティに指定します。

SQL文とは

SQLとは、データベースのデータに対する問い合わせを行う言語で
この言語使用にそって記述されたステートメントをSQL文といいます。
SQLはシンプルな構文なのでわかりやすく、外部データの種類が違っても
ほぼ同じ書式でSQL文を記述できるので大変便利です。
ここでは、レコードを操作する主なSQL文について説明します。


ActiveConnection【アクティブコネクション】プロパティ

指定した Command 【コマンド】オブジェクトが
現在どの Connection 【コネクション】(接続)オブジェクトに
属するかを示すには
Command【コマンド】オブジェクトの
ActiveConnection【アクティブコネクション】プロパティを使用します。

ActiveConnection【アクティブコネクション】プロパティの書式

オブジェクト変数.ActiveConnection = Connectionオブジェクト変数


設定値の説明

  • オブジェクト変数(必須)
    Command【コマンド】オブジェクトのインスタンス(複製)が格納されている
    オブジェクト変数を指定します。
  • Connectionオブジェクト変数(必須)
    接続が確立しているConnection【コネクション】オブジェクトの
    インスタンスが格納されているオブジェクト変数を指定します。

CommandText【コマンドテキスト】プロパティ

実行したいSQL文を設定するには
Command【コマンド】オブジェクトの
CommandText【コマンドテキスト】プロパティを使用します。

CommandText【コマンドテキスト】プロパティの書式

オブジェクト変数.CommandText = SQL文


  • オブジェクト変数(必須)
    Command【コマンド】オブジェクトのインスタンスが格納されている
    オブジェクト変数を指定します。
  • SQL文(必須)
    実行するSQL文を設定します。

    主なSQL文一覧
    SQL文内容
    SELECT【セレクト】文データを抽出します。
    UPDATE【アップデイト】文レコードを更新します。
    INSERT【インサート】文レコードを追加します。
    DELETE【デリイト】文レコードを削除します。

SQL文の記述ルール

  • SQL文は全体を「”」ダブルクォーテーションで囲みます。
  • 各キーワードは半角スペースで区切る
    SQL文を構成するキーワードは半角スペースで区切って記述します。
  • SQL文の末尾に「;」セミコロンを記述する
    接続する外部データベースの種類がAccess【アクセス】、Oracle【オラクル】の
    場合はSQL文の末尾に「;」セミコロンを記述します。
  • 文字列は「’」シングルクォーテーションで囲む
    条件式に文字列を使用する場合は文字列を
    「’」シングルクォーテーションで囲みます。

SELECT【セレクト】文の書式

[]内は省略可能です。
SELECT FROM [WHERE]

設定値の説明

  • SELECT【セレクト】(必須)
    データを抽出するフィールド名を指定します。
    複数のフィールドを指定する場合は「,」カンマで区切ります。
    すべてのフィールドを指定する場合は「*」ワイルドカードが使用できます。
  • FROM【フローム】(必須)
    抽出するデータがあるテーブル名を指定します。
  • WHERE【ウェア】(省略可)
    レコードを抽出する条件式を指定します。
    条件式についてはこちらをご覧ください。
    省略した場合は
    SELECTで指定したフィールドのすべてのレコードが抽出されます。

(例)「商品マスター」テーブルから「商品名」フィールドの「A商品」の
レコードの「商品コード」と「商品名」、「仕入れ単価」を抽出する書式
SELECT 商品コード,商品名,仕入れ単価 From 商品マスター WHERE 商品名=’A商品’;
(例)「商品マスター」テーブルから「商品名」フィールドの「A商品」の
すべてのレコードを抽出する書式
SELECT * From 商品マスター WHERE 商品名=’A商品’;
SELECT文を使用したコード例


UPDATE【アップデイト】文の書式

[]内は省略可能です。
UPDATE SET [WHERE]


設定値の説明

  • UPDATE【アップデイト】(必須)
    修正するレコードがあるテーブル名を指定します。
  • SET【セット】(必須)
    修正するフィールド名と修正データを指定します。
    書式は「修正するフィールド名=修正データ」で複数指定する場合は
    「,」カンマで区切ります。
  • WHERE【ウェア】(省略可)
    レコードを抽出する条件式を指定します。
    条件式についてはこちらをご覧ください。
    省略した場合は
    すべてのレコードがSETで指定したフィールドのデータに修正されます。

(例)「商品マスター」テーブルから「商品名」フィールドの「A商品」の
レコードの「仕入れ単価」を700円「販売単価」を1400円に修正する書式
UPDATE 商品マスター SET 仕入れ単価=700,販売単価=1400 WHERE 商品名=’A商品’;
UPDATE文を使用したコード例


INSERT【インサート】文の書式

INSERT INTO VALUES


設定値の説明

  • INSERT INTO【インサートイントゥ】(必須)
    レコードを追加するテーブル名とフィールド名を指定します。
    テーブル名の後にフィールド名をカッコで囲み
    フィールド名を「,」で区切って指定します。
    書式は「テーブル名(フィールド名1,フィールド名2,・・・・)」
  • VALUES【バリューズ】(必須)
    各フィールドに設定するデータを指定します。
    カッコで囲み、各データは「,」カンマで区切って指定します。
    書式は「(入力データ1,入力データ2・・・・・・・)」

(例)「商品マスター」テーブルに「商品コード」「商品名」
「仕入れ単価」「販売単価」のレコードにデータを追加する書式
INSERT INTO 商品マスター (商品コード,商品名,仕入れ単価,販売単価)
VALUES(‘001100′,’K商品’,200,400);

INSERT文を使用したコード例


DELETE【デリイト】文の書式

[]内は省略可能です。
DELETE FROM [WHERE]


設定値の説明

  • DELETE FROM【デリイトフローム】(必須)
    削除するレコードがあるテーブル名を指定します。
  • WHERE【ウェア】(省略可)
    削除するレコードを抽出する条件式を指定します。
    条件式についてはこちらをご覧ください。
    省略した場合は
    DELETE FROMで指定したテーブルのすべてのレコードが削除されます。

(例)「商品マスター」テーブルの
「商品名」フィールドの「K商品」のレコードを削除する書式
DELETE FROM 商品マスター WHERE 商品名=’K商品’;


Command.Execute【コマンドエクスキュート】メソッド

ADOを使用してSQL文を実行するには
Command【コマンド】オブジェクトの
Execute【エクスキュート】メソッドを使用します。
Execute【エクスキュート】は実行という意味があり
ActiveConnection【アクティブコネクション】プロパティで
接続しているテーブルを設定し
CommandText【コマンドテキスト】プロパティに
実行するSQL文を設定したあとに記述します。

Command.Execute【コマンドエクスキュート】メソッドの書式

【SQLが更新系の場合(値を受け取らない場合)】
オブジェクト変数.Execute
【SQLが抽出系の場合(値を受け取る場合)】
Set オブジェクト変数 = オブジェクト変数.Execute


設定値の説明

  • オブジェクト変数
    Command【コマンド】オブジェクトのインスタンス(複製)が格納されている
    オブジェクト変数を指定します。
  • Set オブジェクト変数
    SQLで抽出されたデータを代入する
    Recoedset【レコードセット】オブジェクトのインスタンスが格納されている
    オブジェクト変数をSet【セット】ステートメントを使用して設定します。

以上で
ADOを使用してレコードの操作をするSQL文を実行する
方法についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク