
みなさんこんにちわ。
ASPを使用してweb上でローカルのACCESSデータベースを参照したいのですが、
エラーが出て、ページを開くことが出来ません。
動作環境は WINDOWS2000SP2 OFFICE2000SP2 MDAC2.5SP2 JET4.0 SP3
ODBCドライバのバージョン(Microsoft Access Driver) 4.00.6019.00
サンプルを参考に作成しました。DBをOPENするところのコードは
openStr = "driver={Microsoft Access Driver (*.mdb)};" & _
"dbq=" & Server.MapPath("critters.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open openStr
と書きました。
しかし、IISよりこのASPファイルを参照すると以下のエラーが出ます。
HTTP 500.100 - 内部サーバー エラー -
ASP エラー
インターネット インフォメーション サービス
エラー タイプ
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジ
ストリ キー 'Temporary (volatile) Jet DSN for process 0x518
Thread 0x5ec DBC 0x2710064 Jet' を開くことができません。
どうもOPENするところで発生しているようなのです。
なにか、バージョンが古いのでしょうか。
NET8 ASSISTANTの環境は関係あるのでしょうか。
原因と思われるところがありましたら、どうか教えていただけないでしょうか。
No.5ベストアンサー
- 回答日時:
む~
検索JET使ってみますか・・・
Dim cn As ADODB.Connection
Dim cnstr As String
:
Set cn = New ADOOB.Connection
cnstr = "Provider=Microsoft.Jet.OLEDB.3.51;" _
& "Data Source=" & Server.MapPath("critters.mdb")
cn.Open cnstr
あんまり変わらないような気もしますけど・・・
ちなみに、
>openStr = "driver={Microsoft Access Driver (*.mdb)};" & _
で、『{』が指定されていますが、サンプルでもされているのですか?使用できるのかな??
あと、MapPathの説明です↓
http://www.microsoft.com/japan/developer/library …
この回答への補足
>で、『{』が指定されていますが、サンプルでもされているのですか?使用できるのかな??
は使用できると思います。ノートPCの方はなんら問題なく表示されますので。
それとMapPathの説明、ありがとうございます。なにからなにまですいません。
検索JETというものを使ってみるのですか。
書き方がいまいち分からない為、研究しないといけないですね。
なにが、原因で表示されないのかもう、さっぱりです。
引き続きがんばって、行こうと思います、DBがOPENされないと
アプリケーションを作成するなんて、遠い夢になってしまいますものね。
No.8
- 回答日時:
ちゃんとつながりますよ。
まず、ODBC設定でシステムDSNを設定します。
このときにmdbファイルの場所も設定します。
[データベース]という枠に中に[選択]というボタンがあるはずなので、ここで、mdbファイルを設定する必要があります。
ODBC設定でファイルを指定しておくことがポイントです。
次に
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "MYDSN"
%>
と書けばつながります。
ここの「MYDSN」はODBC設定で指定したデータソース名です。
下手にMapPath等を使わずにまず、初歩から始めましょう。
この辺の資料は読みましたか?
http://www.microsoft.com/JAPAN/support/kb/articl …
http://www.microsoft.com/JAPAN/support/kb/articl …
この辺の資料を見ていただければ分かりますが、
大抵はデータソース名で接続していることが多いです。
あれこれやるより、システムDSNを設定して接続したほうが楽だし確実なのです。
---
手元の環境
Win2kSP2英語版,Office2kSP2
ODBCドライバ:Microsoft Access Driver[*.mdb]
ODBCDrv Ver:4.00.6019.00
本当にたくさんの回答をいただきありがとうございました。
どうやら、PC自体おかしくなってきていて、DLLがぐちゃぐちゃに
なっている等の原因は内部的なものだったと思われます。
現在はOSの再インストール(T_T)し、順調にページの
表示ができています。
最初のサンプル通りに書いたら、全然普通に表示できました。
本当にお騒がせしました。ありがとうございます。
これからも今回のことにめげずがんばっていきます!!
No.7
- 回答日時:
#6補足への回答です。
>Set cn = CreateObject("ADOOB.Connection")
ADOOBとスペルミスをしています。正しくは『ADODB』です。
私の回答で間違えていたみたいですね。すみません。
>cn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>"DataSource=" & Server.MapPath("critters.mdb")
Openの後ろに指定するのでしたら"="は不要だと思います。
この回答への補足
そうですね。というわけで、スペルを正しくして実行してみました。
・・・
<%
Dim cn
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _
"DataSource=" & Server.MapPath("critters.mdb")
・・・
こんな感じです。
最初は「OLEDB.4.0」でやってみたのですが、上手くいかず「OLEDB.3.51」で
やってみてもやはりだめでした。
エラー内容は変わりましたが。
エラー タイプ
Microsoft JET Database Engine (0x80004005)
エラーを特定できません
こんな感じです。 このエラーが出る前はしょっちゅう
オブジェクトが作成できませんのエラーが出ており、
どうやらCreateObjectのところでオブジェクトが生成できないようです。
ためしにADOからODBCドライバを使いDBへのアクセスはできることを
確認したので、ADOのオブジェクトが何らかの原因で生成できないと
思われます。・・・そろそろOSの入れ替えを考えてきました(T_T)
No.6
- 回答日時:
JETはmdbファイルを開く際、同一ディレクトリにロックファイルを作成しますが、このロックファイルが作れないのではないですか?
IUSR_xxxxのアカウントでWriteできる必要があったはずです。
また、
> エラー タイプ
> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> [Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' を
> 開くことができませんでした。
とありますが、mdbファイルの指定でUNC名やネットワークを参照していませんか?
この回答への補足
OLE DBプロバイダにMicrosoft OLE DB Provider for Microsoft JET
を使用するということで、こんな感じに書いてみました。
・・・
<%
Dim cn
Set cn = CreateObject("ADOOB.Connection")
cn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"DataSource=" & Server.MapPath("critters.mdb")
・・・
これでページの表示をしてみたところ、以下のエラーが出ました。
Microsoft VBScript 実行時エラー (0x800A01AD)
ActiveX コンポーネントはオブジェクトを作成できません。: 'ADOOB.Connection'
いったい原因はなんなのでしょうか・・・。
これだけ調べてもわからないのなら、DLLがおかしくなっているかも
しれませんね。そうするとOSの再インストールからやり直しでしょうか・・・。
No.4
- 回答日時:
何度もすみません。
私も「これだ!」という解決策がだせなくて・・・
ちょっと、補足を読んでいての疑問なのですが、
>極端な話、ODBCのデータソースの追加の時にはデータソース名しか
>指定していません。他の設定は一切していません。(PassWord等)
は、データソース名の下にある『データベース選択』はされていますよね?
とりあえず確認です。
また、原因を探ってみます。
この回答への補足
本当に色々ありがとうございます。ものすごく助かります。
私も色々と原因を探っているのですが、今使用しているPCではなく
ノートPCでほぼ同じ環境にして参照してみるとページが見れるのです。
不思議なので相違点をずっと探しているのですが、やっぱり分かりません。
疑問に思われている部分ですが、ノートPCの方では「データ-ベースの選択」
はしていません。(これはACCESSでみるDBを特定してしまうのですかねぇ。)
なので、現在の自分自身のPCでも選択はしていませんでした。
一応、選択してやってみたのですが、やはり同じエラーがでました。(>_<)
WEB共有しているフォルダの中にはASPファイルとMDBファイルが2つ入っています。ASPファイルの中でMDBをOPENする時に2行目で
"dbq=" & Server.MapPath("critters.mdb")
と書いているのですが、なにせサンプルなものでMapPathの意味がわかりません。
というのも、ノートPCの方で色々実験していて、WEB共有しているフォルダの中に
もしもMDBのファイルが無い場合、一番最初に書いたようなOPENエラーがでるみたいなのです。これにはMapPathの何かが関係しているのでしょうか?
ちなみにもちろん自分自身のPCでは同階層にASPファイルとMDBファイルを
置いてテストしています。
No.3
- 回答日時:
今回のエラーでmdbはASPから参照できているようですね。
権限のエラーが発生したということは、UIDとPassWordが設定されていると考えられるのですが。
cn.Open "TEST",[UID],[PassWord](それぞれ”で囲ってください)
で確認できますか?
PassWordの指定が去れていないのでしたら、ODBCデータソースの指定を、もう一度削除して行ってみてください。
この回答への補足
大変丁寧に教えてくださり、ありがとうございます。
しかし、まだ上手く出来ないです。
極端な話、ODBCのデータソースの追加の時にはデータソース名しか
指定していません。他の設定は一切していません。(PassWord等)
ということは、やっぱり、何か他のところですかねぇ。
ちなみにIISで作成した仮想ディレクトリが参照している、パスが
C:\WEB だとするとこのWEBフォルダはちゃんとWEB共有されています。
ただ、エイリアスの編集というところで、ちゃんと設定できているか
不安は残りますが、ちゃんと出来ていると思っています。
アクセス許可:読み取り、スクリプトソースアクセス、ディレクトリの参照
実行アクセス権:スクリプト
です。
No.2
- 回答日時:
はじめまして。
上記のエラーメッセージについてはよく分からないのですが、同様のシステムを作ったことがあるので参考までに・・・
補足を見るとデータソース名は指定できているようですので、データソース名「TEST」でしたら
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "TEST"
でいけると思います。
この回答への補足
ありがとうございます。
しかし、よく分からないのですが、
openStr = "driver={Microsoft Access Driver (*.mdb)};" & _
"dbq=" & Server.MapPath("critters.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open openStr
と最初に書いていたので、「cn.Open openStr」を「cn.Open "TEST"」
とすると、最初の2行はどうなるのでしょう・・・。
それともそんなに単純じゃなく、もっと、複雑に書くのでしょうか。
一応、「cn.Open "TEST"」でやってみたのですが、今度は、
エラー タイプ
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' を
開くことができませんでした。ほかのユーザーが排他的に開いてい
るか、データを読み取る権限がありません。
とエラーがでました。ちなみに、ASPファイルを参照して立ち上がるデフォルトの
ブラウザはNetscape4.7です。
何か他のところに原因があるのかもしれないですねぇ・・・。(-_-;)
No.1
- 回答日時:
> ローカルのACCESSデータベースを、、、
このmdbファイルはwebサーバと同一マシン上に保存されているファイルですよね。
であれば、webサーバのシステムDSNを設定正しく設定して、DSN名でADODB.Connectionをしてやれば開けますよ。
この回答への補足
ローカルのACCESSというのはおっしゃるとおり、WebサーバーとMDBファイル等を
同じマシンで動かすということです。
システムDSNの設定を正しくというのは、ODBCのシステムデータソースの構成を
正しく設定するということでしょうか?それが良くわからないのですが、
データ-ソース名というのは何と関係のあるものなのでしょうか。ちなみにその名前がTESTだとしたら、そのDSN名でADOの接続をするのにどのような処理をしたらいいのでしょうか。
Set cn = Server.CreateObject("ADODB.Connection")という文字だけではなく
なにかDSN名を指定しないといけないのでしょうか。
データ-ソースの構成で、詳細情報にログイン名とパスワードがありますが設定しないでやりたいです。 初心者なものですいません。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
「パス名が無効です」の発生原因
-
ASP.NET 2.0にてアプリが動作し...
-
Returnに対するGoSubがありません
-
PowerShellを使って関連付けら...
-
VB6 Dir関数で52エラー発生
-
アクセスのクエリでコンパイル...
-
「複数の選択範囲に対して実行...
-
エクセル VBA コンパイルエラ...
-
FORTRANの実行エラーについて
-
access テキストボックスの値取得
-
VB スクリプトで
-
ファイルをクローズしたい
-
イベントが発生しない vba
-
batファイルでレジストリキーの...
-
ExcelVBAで既に開いてるwordを...
-
NAS上のファイルの使用中が解除...
-
ASPからACCESSのOPENどうしても...
-
データベースソフトのアクセス2...
-
なぜString型ではだめなのか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
access テキストボックスの値取得
-
「パス名が無効です」の発生原因
-
ExcelVBAで既に開いてるwordを...
-
NAS上のファイルの使用中が解除...
-
Returnに対するGoSubがありません
-
gccを行ってもexeファイルが生...
-
PowerShellを使って関連付けら...
-
batファイルでレジストリキーの...
-
アクセスのクエリでコンパイル...
-
VB6 Dir関数で52エラー発生
-
エクセルマクロでエラーの原因...
-
VBでファイルが開かれているか...
-
【COBOL】read文でエラー
-
FTPの送信結果を検知したい
-
VBから参照できないCのDLLを使...
-
fgets関数のEOFの扱い方について
-
ACCESS VBAでのインポート
-
データベースソフトのアクセス2...
-
DisplayAlertsブロパティで ”実...
おすすめ情報