@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ADOでExcelファイルを読みとり専用で開くには

1
投稿者投稿内容
nisiM
会議室デビュー日: 2003/10/01
投稿数: 4
投稿日時: 2003-10-01 14:31
初投稿です、よろしくお願いします

複数のExcelファイルに対してADOを使い一括でSQLを発行し、
データを収集するというプログラムを組んでいるのですが
他人が開いているも読みとり専用で開けるようにしたいのですが、
いろいろ試してもできませんでした。
以下、試したことを列挙します

(1)ado.netでは読みとり時のロックタイプが指定できないのでADOにしてロックタイプを設定してみる
→不可、recoadset.open実行時にエラーがでる
#rs.Open(sql,con,ADODB.CursorTypeEnum.adOpenForwardOnly,ADODB.LockTypeEnum.adLockReadOnly,0);

(2)接続文字列で読みとり専用にしてみる
private const string connectStrBfr="Driver={Microsoft Excel Driver (*.xls)};Dbq=";
private const string connectStrAft=";ReadOnly=1;";

→rs.open時以下のエラーがでます
'System.Runtime.InteropServices.COMException' のハンドルされていない例外が test.exe で発生しました。

追加情報 : [Microsoft][ODBC Excel Driver] データベース '(不明)' を開くことができません。アプリケーションで認識できないデータベースであるか、またはファイルが破損しています。
(Microsoft.Jet.OLEDB.4.0の場合は接続文字列では指定できないようです)

#ファイルが開かれてなければこのエラーはでないようです

そのほか、細かい組み合わせなどを試してみたのですがうまくいきませんでした。
.net以外の言語ではADOでExcelファイルを読み込み専用で開くことは可能なのでしょうか?
どうかよろしくご教授ください
1

スキルアップ/キャリアアップ(JOB@IT)