エラートラップを仕掛けておいて回避するといった方向でしょう
On Error Resume Next
Set cnn=Server.CreateObject("ADODB.Connection")
On Error Goto 0
if not cnn is nothing then
cnn.open "dummy"
cnn.close
cnn.open "testdb" '// ODBCをtestdbにしています。
SQL = "SELECT * FROM M_USER ORDER BY USERID"
On Error Resume Next
Set rs1 = cnn.Execute(SQL)
On Error Goto 0
if not rs1 is nothing then
' 正常に読み込めた場合の処理
else
' 何かのエラーが起きた場合
end if
else
' 何かのエラーが起きた場合
end if
といった具合に トラップを仕掛ける範囲を限定して対処してみましょう
cnn.Open でエラーになっているなら
on error resume next
cnn.Open "testdb"
if err.number<>0 then
' Open失敗時の処理
end if
on error goto 0
といった具合かと
お礼
redfox63様、ご回答ありがとうございます。 エラートラップでエラー表示そのものは回避できるかと思いますが、 今回は、asp側でのエラーの根本的な解決をしたいと考えております。 曖昧な情報で申し訳ないのですが、現在のサーバにリプレイスする前は 直接mdbファイルを開いていても、asp側でも正常にOpen出来ていたため、 排他で開かない設定方法があるのではないかと思い、ご相談した次第です。 リプレイス前と現在はプログラムソースは変更ありませんので、 ODBCの設定で何かあるのかと思ったのですが…。
補足
エラーの件、自己解決しましたのでご報告いたします。 mdbファイルを設置しているディレクトリのアクセス権限が ないことによる現象だったようです。 テスト的に、Usersにフルコントロールを設定したところ、 直接mdbファイルを開いていても、asp側で問題なくOpenできました。 #ただ、直接mdbファイルを開いていない時は問題なくasp側でOpenが 出来ていて、なぜUsersに権限がないと直接開いている時にエラーに なるのかはよくわからないままです…。 今回はたまたま解決できましたが、いつ原因不明のエラーと出くわすか わからないので、redfox63様のご回答どおり、エラートラップも ちゃんと対応していきたいと思います。 この度は本当にありがとうございました。