Excelに取り込んだデータを並べ替えたり集計したり重複を抜いたりしなければならなくなりました。そういえばODBCの設定にExcelのドライバがあったよなと思い出し「ExcelをDBのように使えるはずだよな」と調べてみました。
こんなサイトがありました。
http://support.microsoft.com/kb/257819/ja
ここに丁寧に書いてあります。しかし、概論と各論を番号などで区分けしたりしていないので読みにくいです。
上記サイトにはアクセスする際の定義が3パターンほどあります。
・Microsoft Jet OLE DB Provider
・Microsoft OLE DB Provider for ODBC Drivers DSN指定
・Microsoft OLE DB Provider for ODBC Drivers DSN指定なし
Jetを避け、ODBC 設定が不要な、上記の最後の方法で行いました。ブック名をそのまま書けるので便利です。ブック名を変数化することも可能です。
使っていてのノウハウは
・「保存されているブックのデータでないとダメ」のようです。
・通常のSELECT、テーブルのJOINも可能。
・DELETEができなかったので、使わない項目を削除フラグとして扱い、UPDATEで書き換え、SELECTで条件に入れた。
・更新系も参照系も.Executeメソッドを使います。
・参照系はレコードセットにsetしましょう。
これだけは!という注意点は
・型を自動判別するため、SELECTがうまくできない場合がある。SELECT対象項目なら空白項目はすべて埋めておかないと思惑どおりの結果を返してくれない場合があります。これは明記してあるのですが、体験すると面食らいます。
この記事に目を通し、上記サイトを見れば少しは読みやすくなっているかと存じます。