文書番号: 405460
最終更新日: 2002/08/28
この資料は以下の製品について記述したものです。
Microsoft(R) Excel for Windows(R) Version 5.0 (以下 Excel 5.0) この記事は、以前は次の ID で公開されていました: JP405460
概要
Microsoft(R) Visual Basic(R) Programming System Applications Edition (以下
VBA) で XLODBC アドイン関数を使用し、 NULL フィールドを含むテーブルのデータを取得する際、一部の ODBC ドライバにおいて、ひとつ前のフィールドの値がコピーされてしまうことがあります。
本文書は、この問題の詳細と、回避するための XLODBC.XLA の入手方法について解説
したものです。現象
XLODBC アドイン関数を使用し下記のような VBA のプログラムを実行した際、NULL
フィールドを含むテーブルのデータを取得すると、 ODBC ドライバによっては、
NULL フィールドのひとつ前のフィールドのデータがコピーされることがあります。
サンプル プログラム
Sub SQLORA ()
Dim con As Variant
on = SQLOpen("DSN=ABUORA72;DBQ=p:kkpsscat;UID=ABU;PWD=Excel", , 2)
SQLExecQuery con, "select * from NULLDATA"
SQLRetrieve con, Range("Sheet1!A1"), , , True
SQLClose con
End Sub
テーブル [NULLDATA] の内容 実行結果
-------------------------------------+--------------------------------------
Fld1 (char) Fld2 (char) Fld3 (num) Fld1 (char) Fld2 (char) Fld3 (num)
aaa1 bbb1 1 aaa1 bbb1 1
aaa2 2 aaa2 aaa2 2
aaa3 3 aaa3 aaa3 3
回避策
アドイン ファイル XLODBC.XLA をアップデートすることにより本現象を回避すること
ができます。なお、弊社でこの現象を確認している ODBC ドライバは、日本オラクル
社製 ORACLE7 用 ODBC ドライバですが、他の ODBC ドライバでも同様の現象が発生する可能性があります。
XLODBC.XLA の入手方法
弊社テクニカル サポートまでご連絡ください。XLODBC.XLA のアップデート方法
入手した XLODBC.XLA、XLODBC.DLL を、\EXCEL5\LIBRARY\MSQUERY ディレクトリにコ
ピーします。この際、既存の XLODBC.XLA、XLODBC.DLL は、あらかじめ別の任意の名前
( XLODBC.OLD、XLODBC.OLD など)に変更するなどし、バックアップ保存しておく事をおすすめします。
Keywords: 7.0 addin Add-in function KBINFO VBA KB405460
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch