本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[XL] XLODBC アドイン関数 (紹介編)

文書番号: 401675

最終更新日: 1998/02/05


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP401675


概要

本文書は、Microsoft(R) Visual Basic(R) Programming System Applications
Edition (以下 VBA) で XLODBC アドイン関数を使用し、 Excel5.0 から外部
データベース上のデータの変更、追加、削除をする方法をサンプル モジュール
と共に解説しています。

使用例

サンプル モジュールは「 SQL Server 」と「 ORACLE 」に対するものを用意いた
しました。それぞれのプログラム実行環境は次の通りです。
  SQL Server
    プログラム実行環境
        サーバー         SQLServer
        ODBC ドライバ    SQLServerODBC ドライバ (Excel5.0 添付)
        データソース名   TstSQL
     TstSQL の内容
        サーバー名       serversql1
        ユーザー ID      sa
        データベース     pubs
        パスワード       Excel
  ORACLE
    プログラム実行環境
        サーバー         ORACLE
        ODBC ドライバ    ORACLE Ver. 6 用 ODBC ドライバ (Access 添付)
        データソース名   TstORA
    TstORA の内容
        サーバー名       serverora1
        ユーザー ID      SCOTT
        パスワード       Tiger
XLODBC アドイン関数を使用したサンプル モジュールは次の通りです。
モジュールの記述で、次の記述で囲まれている部分は、紙面上では改行されていま
すが、実際のモジュール シートへの入力の際は改行してはいけないコードを
示しています。ご注意ください。
    '以下 2 行は改行せずにコードを入力してください。
    '上の 2 行は改行せずにコードを入力してください。

1. クエリーを実行し、抽出データをワークシートへ貼りつける

次のサンプル モジュールでは、データソースとの接続を確立後、実行された
クエリーの結果をワークシート "sheet1" のセル "A1" に貼り付けています。

サンプル 1-1 (SQLServer)

  Sub GetDataSQL()
      Dim con As Variant
      Dim sql As String
      'データソースとの接続を確立し SQLOpen のリターン値を変数 con にセット
      '以下の 2 行は改行せずにコードを入力してください。
      con = SQLOpen("DSN=TstSQL;SERVER=serversql1;UID=sa;DATABASE=pubs;
      PWD=Excel", , 2)
     '上の 2 行は改行せずにコードを入力してください。
      'SQL 文定義
      sql = "SELECT * FROM 売上"
      'クエリーの実行
      SQLExecQuery con, sql
      '以前に実行されたクエリーの結果を取得し Sheet1 のセル A1 に貼り付け
      SQLRetrieve con, Range("Sheet1!A1"), , , True
      'データソースとの接続を切断
      SQLClose con
  End Sub

サンプル 1-2 (ORACLE)

  Sub GetDataORA()
      Dim con As Variant
      Dim sql As String
      'データソースとの接続を確立し SQLOpen のリターン値を変数 con にセット
      '以下の 2 行は改行せずにコードを入力してください。
      con = SQLOpen("DSN=TstORA;DBQ=p:serverora1;UID=SCOTT;PWD=Tiger",
      , 2)
      '上の 2 行は改行せずにコードを入力してください。
      'SQL 文定義
      sql = "SELECT * FROM 売上"
      'クエリーの実行
      SQLExecQuery con, sql
      '以前に実行されたクエリーの結果を取得し Sheet1 のセル A1 に貼り付け
      SQLRetrieve con, Range("Sheet1!A1"), , , True
      'データソースとの接続を切断
      SQLClose con
  End Sub

2. クエリーの結果を取得し、ファイルに格納する

次のサンプル モジュールでは、データソースとの接続を確立後、実行されたクエ
リーの結果をテキスト ファイルに格納しています。

サンプル 2-1 (SQLServer)

  Sub GetDatatoFile1()
      Dim con As Variant
      Dim sql As String
      'データソースとの接続を確立し SQLOpen のリターン値を変数 con にセット
      '以下の 2 行は改行せずにコードを入力してください。
      con = SQLOpen("DSN=TstSQL;SERVER=serversql1;UID=sa;DATABASE=pubs;
      PWD=Excel", , 2)
      '上の 2 行は改行せずにコードを入力してください。
      'SQL 文定義
      sql = "SELECT * FROM 売上"
      'クエリーの実行
      SQLExecQuery con, sql
      '以前に実行されたクエリーの結果を取得し ファイル d:\doc\sql.txt に格納
      SQLRetrieveToFile con, "d:\doc\sql.csv"
      'データソースとの接続を切断
      SQLClose con
  End Sub

サンプル 2-2 (ORACLE 編)

  Sub GetDatatoFile2()
      Dim con As Variant
      Dim sql As String
      'データソースとの接続を確立し SQLOpen のリターン値を変数 con にセット
      '以下の 2 行は改行せずにコードを入力してください。
      con = SQLOpen("DSN=TstORA;DBQ=p:serverora1;UID=SCOTT;PWD=Tiger",
      , 2)
      '上の 2 行は改行せずにコードを入力してください。
      'SQL 文定義
      sql = "SELECT * FROM 売上"
      'クエリーの実行
      SQLExecQuery con, sql
      '以前に実行されたクエリーの結果を取得し ファイル d:\doc\sql.txt に格納
      SQLRetrieveToFile con, "d:\doc\sql.csv"
      'データソースとの接続を切断
      SQLClose con
  End Sub

詳細

  • データソースに接続する前に SQLOpen の第一引数 DSN= で使用するデータソー スを定義しておく必要があります。
  • サンプルプログラムで使用する SQLOpen、SQLExecQuery、SQLRetrieve、 SQLRetrieveToFile、SQLClose は XLODBC アドインに含まれます。この関数を 使用可能にするには、[ツール] - [参照設定] コマンドで XLODBC.XLA の参照を 設定しておく必要があります。
  • XLODBC アドイン関数についての詳細は、[?] - [キーワードで検索] コマンド - [ODBC 関数アドイン] を参照して下さい。
  • SQLOpen の第一引数で指定する接続文字列 ("DSN=・・・・・PWD=・・・") は、ご使用に なっている ODBC ドライバにより異なります。
  • 接続文字列についての詳細は、ご使用になっている ODBC ドライバのオンライ ン ヘルプを参照して参照していていただくか、ODBC ドライバ メーカーに お問い合わせ下さい。
        SQLServer
         「 Microsoft Query 」の [?]-[目次] コマンド - [リファレンス  ODBC
           ドライバ] - [SQL Server] - [上級ユーザー向け  接続文字列 (上級)]
        ORACLE (Version 6 用 Access 添付)
        「コントロール パネル」の「 ODBC 」- <追加> ボタン - 「 ORACLE Driver 」
          を選択 - <OK> ボタン - <ヘルプ> ボタン - <目次> ボタン - [接続文字列
          (上級)]
        その他
          ODBC ドライバ メーカーにお問い合わせ下さい
    

Keywords: KBINFO KB401675
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system