質問: createobject("adodb.connection") '更新モードでオープン objado.open "driver={microsoft excel driver (*.xls)};" & "dbq=" & savepath & ";" & "readonly=0"
回答: > objado.open "driver={microsoft excel driver (*.xls)};" & "dbq=" & savepath & ";" & "readonly=0" 上記の接続手法はodbc接続なので、 excelファイルのパスワードまでをも管理する機能は、odbc・excelドライバにはありません。 windows側でodbc設定でexcelドライバを指定して接続定義する画面を開くと良くわかるかと思いますが、 excel側で設定しているパスワードも設定し、自動接続するようなことが できないのがおわかり頂けるかと思います。 理由は、パスワード機能はあくまで「excel」の機能であり、 「odbc」の機能ではないので、odbc接続にexcelパスワードを設定することは不可能ということになります。 とにかく接続!というのも大事ですが、まずは上記の本質をご理解した上で、問題の回避方法を説明します。 adoでexcelファイルを開いた後、ado+ odbc接続でexcelを開くのではなく、「excel.application」というオブジェクトを使ってexcelを開くとパスワード入りのexcelファイルを開けるようになります。 こんな感じで・・・(細かい引数などは間違っているかもしれないので、とりあえず感覚だけでもつかんでいただければ) set xlsapp = server.createobject("excel.application") set xlsbook = xlsapp.workbooks.open(strgetfilename, , , ,"読み取り用か書き込み用のパスワード") . . . ワークブック(excel)のパスワード自動入力させるやり方は、 http://okwave.jp/qa1693505.html あたりに掲載されています。 また、asp側でexcelを操作する方法は、 http://okwave.jp/qa457833.html あたりをご参考にいただければと思います。 それから関係ないんですが、「readonly=0」ではなく、「readonly=false」と書いても動きますので、0, 1でreadonly属性を設定するのは客観的にわかりずらいので、お勧めできません。 読み取り専用ならその反対で、「readonly=true」になります。 それでは、宜しくお願いします。 参考url:http://okwave.jp/qa1693505.html