ODBCとExcelODBCはときとして、Excelファイルの読み書きに使用されることがあります。アプリケーションから送られたSQL文をExcelにも適応できると考えた結果といえるでしょう。その要求を基にODBCドライバがExcelファイルにアクセスするのです。SQL文さえ理解しておけばExcelファイルを読み書きできる利点が生じます。(*.xls)というExcel用のドライバが用意されています。いつでもODBCでExcelファイルを読み書きできるようになります。例として、次のようなデータを持つExcelファイルを作成しておきます。一行目に列名を記述し、二行目以降にデータを記述します。Sheet1にこのテーブルを記述したのであれば、テーブル名は[Sheet1$]で表すことができます。特定の範囲のみをテーブルと見なしたい場合は、[Sheet1$A1:B2]のように表すことができます。ODBCによるExcelへのアクセス手順は、通常のデータベースと特に変わることはありません。ドライバの接続に使用する関数は異なることになります。属性文字列を受け取るSQLDriverConnectを呼び出します。DriverCompletion);ConnectionHandleは、接続ハンドルを指定します。WindowHandleは、ウインドウハンドルまたはNULLを指定します。InConnectionStringは、接続に使用する属性文字列を指定します。StringLength1は、SQL_NTSを指定します。OutConnectionStringは、実際にドライバ内で処理された属性文字列を受け取るバッファを指定します。BufferLengthは、OutConnectionStringのサイズを指定します。StringLength2Ptrは、OutConnectionStringに格納された文字列のサイズを受け取る変数のアドレスを指定します。DriverCompletionは、ドライバマネージャまたはドライバの動作に関する定数を指定します。SQL_DRIVER_PROMPTを指定して、第2引数にウインドウハンドルを指定した場合はダイアログが表示されます。ダイアログが不要な場合は、SQL_DRIVER_NOPROMPTを指定します。今回のプログラムは、Excelファイルからデータを取得する処理とデータを追加する処理が含まれています。TEXT("終了します。TRUE;}SQLDriverConnectの第3引数に指定する文字列は、各属性を;で連結したものになります。DriverにはExcel用のODBCドライバの名前を指定し、dbqにはExcelファイルのフルパスを指定します。した動作を行う場合はReadOnlyを0にする必要があります。FALSEの場合はINSERT文でデータを追加します。テーブル名を指定する部分には、既に述べたように[Sheet1$]のように指定します。2列目に対するSQLBindColの呼び出しでは、第3引数にSQL_C_SSHORTという数値型を指定します。この場合は小数点が文字列に含まれることになります。