みなさんこんにちわ。

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の環境は関係あるのでしょうか。
原因と思われるところがありましたら、どうか教えていただけないでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

む~



検索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されないと
アプリケーションを作成するなんて、遠い夢になってしまいますものね。

補足日時:2002/01/08 19:43
    • good
    • 0

ちゃんとつながりますよ。


まず、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
    • good
    • 0
この回答へのお礼

本当にたくさんの回答をいただきありがとうございました。
どうやら、PC自体おかしくなってきていて、DLLがぐちゃぐちゃに
なっている等の原因は内部的なものだったと思われます。
現在はOSの再インストール(T_T)し、順調にページの
表示ができています。
最初のサンプル通りに書いたら、全然普通に表示できました。

本当にお騒がせしました。ありがとうございます。
これからも今回のことにめげずがんばっていきます!!

お礼日時:2002/01/10 19:15

#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)

補足日時:2002/01/09 19:13
    • good
    • 0

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の再インストールからやり直しでしょうか・・・。

補足日時:2002/01/09 15:42
    • good
    • 0

何度もすみません。


私も「これだ!」という解決策がだせなくて・・・

ちょっと、補足を読んでいての疑問なのですが、

>極端な話、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ファイルを
置いてテストしています。

補足日時:2002/01/08 18:08
    • good
    • 0

今回のエラーでmdbはASPから参照できているようですね。


権限のエラーが発生したということは、UIDとPassWordが設定されていると考えられるのですが。

cn.Open "TEST",[UID],[PassWord](それぞれ”で囲ってください)
で確認できますか?

PassWordの指定が去れていないのでしたら、ODBCデータソースの指定を、もう一度削除して行ってみてください。

この回答への補足

大変丁寧に教えてくださり、ありがとうございます。
しかし、まだ上手く出来ないです。
極端な話、ODBCのデータソースの追加の時にはデータソース名しか
指定していません。他の設定は一切していません。(PassWord等)
ということは、やっぱり、何か他のところですかねぇ。

ちなみにIISで作成した仮想ディレクトリが参照している、パスが
C:\WEB だとするとこのWEBフォルダはちゃんとWEB共有されています。
ただ、エイリアスの編集というところで、ちゃんと設定できているか
不安は残りますが、ちゃんと出来ていると思っています。

アクセス許可:読み取り、スクリプトソースアクセス、ディレクトリの参照
実行アクセス権:スクリプト

です。

補足日時:2002/01/08 17:36
    • good
    • 0

はじめまして。



上記のエラーメッセージについてはよく分からないのですが、同様のシステムを作ったことがあるので参考までに・・・

補足を見るとデータソース名は指定できているようですので、データソース名「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です。
何か他のところに原因があるのかもしれないですねぇ・・・。(-_-;)

補足日時:2002/01/08 16:43
    • good
    • 0

> ローカルのACCESSデータベースを、、、


このmdbファイルはwebサーバと同一マシン上に保存されているファイルですよね。
であれば、webサーバのシステムDSNを設定正しく設定して、DSN名でADODB.Connectionをしてやれば開けますよ。

この回答への補足

ローカルのACCESSというのはおっしゃるとおり、WebサーバーとMDBファイル等を
同じマシンで動かすということです。
システムDSNの設定を正しくというのは、ODBCのシステムデータソースの構成を
正しく設定するということでしょうか?それが良くわからないのですが、
データ-ソース名というのは何と関係のあるものなのでしょうか。ちなみにその名前がTESTだとしたら、そのDSN名でADOの接続をするのにどのような処理をしたらいいのでしょうか。
Set cn = Server.CreateObject("ADODB.Connection")という文字だけではなく
なにかDSN名を指定しないといけないのでしょうか。
データ-ソースの構成で、詳細情報にログイン名とパスワードがありますが設定しないでやりたいです。 初心者なものですいません。よろしくお願いします。

補足日時:2002/01/08 15:14
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIIS7.0 と ASP を使ってMDBファイルを参照したい

みなさんこんばんわ。

IIS7.0 と ASP を使ってMDBファイルを参照したいのですが、
エラーが出て、ページを開くことが出来ません。
エラー表示は HTTP500内部サーバーエラー と表示されます。

エラーでとまる部分は以下コードの Point002 と Point003 の間です。

Response.Write "<p>Point001"

Set Objconn = Server.CreateObject("ADODB.Connection")

Response.Write "<p>Point002"

Objconn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath(DB_Pass)

Response.Write "<p>Point003"

StrSQL="select * from " & Table_Name

Set Objrs = Server.CreateObject("ADODB.Recordset")

Response.Write "<p>Point004"

Objrs.Open StrSQL, ObjConn

Response.Write "<p>Point005"

ODBC を使う方法もあるようですが今回は ODBC を使わないでMDBファイルを参照したいのです。
よろしくお願いします。

環境
OS→Windows Vista Ultimate
Access→Access2000
IIS→IIS7.0
使用言語→VBScript

みなさんこんばんわ。

IIS7.0 と ASP を使ってMDBファイルを参照したいのですが、
エラーが出て、ページを開くことが出来ません。
エラー表示は HTTP500内部サーバーエラー と表示されます。

エラーでとまる部分は以下コードの Point002 と Point003 の間です。

Response.Write "<p>Point001"

Set Objconn = Server.CreateObject("ADODB.Connection")

Response.Write "<p>Point002"

Objconn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath(DB_Pass)

Re...続きを読む

Aベストアンサー

mesomokyuさん、こんにちは。
nas02です。

どうも、Vistaでは設定が変わっているみたいですね。
最初の接続文字列からすると、下記サイトからダウンロードできる「2007 Office system ドライバ: データ接続コンポーネント」は
インストールしてあるのでしょうか?
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891
それでしたら、接続文字列のProviderを"Microsoft.ACE.OLEDB.12.0"に設定すれば、良いと思いますがいかがでしょうか?
※"Microsoft.ACE.OLEDB.12.0"がレジストリに登録されてあるか、レジストリエディタ(regedit)で検索してチェックすると確実です。

もし、未インストールで上記のコンポーネントはインストールしないという事でしたら、レジストリから接続文字列を調べる必要があります。
1.「c:\windows\system32\」のフォルダ以下を「msjet」で検索して以下のモジュールがあることを確認します。
 ・msjet40.dll
 ・msjetoledb40.dll → これがなかったら、素直に上記のモジュールをインストールしましょう。
2.レジストリエディタ(regedit)を起動して、マイ コンピュータから「msjetoledb40.dll」を検索します。
 因みにXPでは、以下の場所がヒットします。(複数ヒットしますが、「OLE DB Provider」が同列にある方を調べます)
  "HKEY_CLASSES_ROOT\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\InprocServer32"
3.次に、一つ上の場所をクリックします。
 XPでいえば、
  "HKEY_CLASSES_ROOT\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}"
 です。
 そこの(既定)にデータが入っていますので、その文字列をコピーします。
 XPの場合は、「(既定):Microsoft.Jet.OLEDB.4.0」となっています。
4.コピーした文字列で、最初から検索します。(3.でヒットする「HKEY_CLASSES_ROOT\CLSID」や下位にCLSIDがないのは無視します)
 XPの場合は、以下の場所がヒットします。
  "HKEY_CLASSES_ROOT\Microsoft.Jet.OLEDB.4.0"
 上記のヒットしたデータのキーから「HKEY_CLASSES_ROOT\」を抜いた値を接続文字列に使います。(多分、3.の値と同じ可能性あり)
 ※Vistaがどんな設定になっているのか非常に興味ありますので、もし分りましたら教えて下さい。

Vistaを持ってないのでこれ以上は調べられませんが、多分これでいけると思います。

mesomokyuさん、こんにちは。
nas02です。

どうも、Vistaでは設定が変わっているみたいですね。
最初の接続文字列からすると、下記サイトからダウンロードできる「2007 Office system ドライバ: データ接続コンポーネント」は
インストールしてあるのでしょうか?
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891
それでしたら、接続文字列のProviderを"Microsoft.ACE.OLEDB.12.0"に設定すれば、良いと思いますがいかがでしょうか?
※"M...続きを読む

Qデータソース名および指定された既定のドライバが見つかりません。

データソース名および指定された既定のドライバが見つかりません。
オラクルに接続したのですが、上記のエラーが出て接続出来ません。
どなたか力を貸してください。

<環境>
WinXP
VS2005 Ver8.0.50727.42
Windowsアプリケーション
VB言語でオラクルに接続したいと思っています。

こちら(http://support.microsoft.com/kb/310985/ja)を参考に
オラクルに接続しようとしています。

Dim cn As OdbcConnection
cn = New OdbcConnection("Driver = {Microsoft ODBC for Oracle};" & _
"Data Source=ORA_TEST;uid=UID_TEST;pwd=PWD_TEST")

Try
cn.Open()
MsgBox("Connected")
Catch ex As Exception
MsgBox("NG")
Debug.Print(ex.Message, "Error") ←(A)
Finally
cn.Close()
End Try

(A)で「ERROR [IM002] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。」

のメッセージが出ます。
VB2005の「ツール」-「サーバの接続」では接続確認が取れているのですが、
コードで書くとエラーになってします。

何か書き忘れているのでしょうか。。。
すみませんがよろしくお願いいたします。

データソース名および指定された既定のドライバが見つかりません。
オラクルに接続したのですが、上記のエラーが出て接続出来ません。
どなたか力を貸してください。

<環境>
WinXP
VS2005 Ver8.0.50727.42
Windowsアプリケーション
VB言語でオラクルに接続したいと思っています。

こちら(http://support.microsoft.com/kb/310985/ja)を参考に
オラクルに接続しようとしています。

Dim cn As OdbcConnection
cn = New OdbcConnection("Driver = {Microsoft ODBC for Oracle};" & _
...続きを読む

Aベストアンサー

>cn = New OdbcConnection("Driver = {Microsoft ODBC for Oracle};" & _
>"Data Source=ORA_TEST;uid=UID_TEST;pwd=PWD_TEST")

自分の環境に合わせないとね?????

これの意味はインポートしているんですよね? スクリプトはVBSの事ですかね。VBA? VBですよね?

Imports System.Data
Imports Microsoft.Data.ODBC


それと見るHPがちょこと違う。
http://msdn.microsoft.com/ja-jp/library/system.data.oracleclient.oraclelob.aspx

QACCESSのデータをWebブラウザで表示(イントラ環境)

現在社内ヘルプデスクで勤務しているものです。
最近システムの変更がされ問いあわせが日々増えているのですが
この内容を何とか社内で共有できないものかと四苦八苦しております。
目指しているところは
『WEBブラウザ(IEもしくはFirefox)を使い
ACCESSに蓄積されたデータを照会・更新可能にする』
というところなのですが何か良いアイデアをいただけないでしょうか?

現在の環境は
・ACCESSを使って日々の問いあわせのデータを蓄積
・ヘルプデスクメンバーのPCにはACCESSがインストールされていてデータ照会・更新可能。
・社員用PCにはACCESSがインストールされていない。
・ACCESSのファイルは社員共有のファイルサーバーに保存
(単純に個人個人のフォルダがあってその中にデータがおいてあるもの)
・情報の共有化に関し予算は0円

という状況です。

当方技術力がほとんどないのですが、教えていただいた内容は一生懸命理解するよう頑張りますのでよろしくお願いいたします。

Aベストアンサー

パッと思いついた点を述べてみます。

Access内のデータをLAN限定のWebに展開し、複数の人に見てもらう事について。基本的にAccessを、複数からの同時参照を前提としたデータベースとして使うのはちょっとお奨めできません。
システム屋がデータベースにAccessを余り用いない理由に、同時参照に弱く壊れやすい(業務用のそれと比べてですが)そして大量データを扱いにくい(数十万件数百万件規模)といった弊害があります。

予算ゼロで私がそういったシステムを作るなら、別途Web公開サーバに新規データベースとしてMySQLないしSQL Server 2005 Express Edition(両方とも無償)等を使用し、Accessのデータをアップサイジングさせて社内LANからブラウザのアクセス→データベース内の要求された分のデータ展開にPHPやASPを使用する感じになると思います。

ですがこれだと開発もそれなりのものになるので、困りますね。ご自分で構築するつもりでしょうか?
他にちょろっと思いつくのはエクセルをそのままブラウザに展開させる方法ですがクライアント側にエクセルが入っている事が条件になります。

パッと思いついた点を述べてみます。

Access内のデータをLAN限定のWebに展開し、複数の人に見てもらう事について。基本的にAccessを、複数からの同時参照を前提としたデータベースとして使うのはちょっとお奨めできません。
システム屋がデータベースにAccessを余り用いない理由に、同時参照に弱く壊れやすい(業務用のそれと比べてですが)そして大量データを扱いにくい(数十万件数百万件規模)といった弊害があります。

予算ゼロで私がそういったシステムを作るなら、別途Web公開サーバに新規データベー...続きを読む

QVBSでADOを使ってaccessのテーブルに接続

VBSでADOを使ってaccessのテーブルに接続する方法は?

Sub ADO_test()

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\【Access】サンプル.mdb"
rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic

MsgBox "test成功です"

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub

をACCESSVBAで実行すると成功しますが
全く同じコードをメモ帳に貼り付けてtest.vbsで保存し、ダブルクリックすると、

行:3
文字:11
エラー:ステートメントの末尾が不正です。
コード:800A0401

のエラーになります。

VBAは少しわかるのですが、VBSに関しては初心者です。
どこを修正すればコードが通るのか教えてください。

VBSでADOを使ってaccessのテーブルに接続する方法は?

Sub ADO_test()

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\【Access】サンプル.mdb"
rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic

MsgBox "test成功です"

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub

をACCESSVBAで実行すると成功しますが
全く同じコードをメモ帳に貼り付けてtest.vbsで保存...続きを読む

Aベストアンサー

Dim cn 'データ型の指定は出来ません。VBSにお任せになります
Dim rs
const adOpenKeyset = 1
const adLockOptimistic = 3
set cn=createobject("adodb.connection") 'Accessのように参照設定は出来ないので此処で
set rs=createobject("adodb.recordset")

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\【Access】サンプル.mdb"
rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic 'Accessの定数名では指示できないので実数で
'rs.Open "テーブル1", cn, 1, 3 'これだと後で見ても分からないので、Const で宣言
MsgBox "test成功です"
msgbox rs(0)
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

かな?
定数の実際の値はイミディエイトウィンドウで
?adOpenStatic とかで返ってくる値を確認してください。

Dim cn 'データ型の指定は出来ません。VBSにお任せになります
Dim rs
const adOpenKeyset = 1
const adLockOptimistic = 3
set cn=createobject("adodb.connection") 'Accessのように参照設定は出来ないので此処で
set rs=createobject("adodb.recordset")

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\【Access】サンプル.mdb"
rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic 'Accessの定数名では指示できないので実数で
'rs.Open "テーブル1", cn, 1, 3 'これだと後で見...続きを読む

QASPでAccess接続 ODBCの設定について

こんにちは。
以前も、ASPでAccessファイルへの接続について、こちらでお世話になりました。


別サーバで作ったショッピングシステムのサーバ移行をしています。
これは別の人が作ったシステムで、社内には誰もわかる人がいません。
(私が簡単なサイトが作れるので、話が回ってきた感じです)

ASPで作られているのですが、91個のASPファイルから同一Accessファイルへ接続している作りになっていることが今日分かりました。

コードに直接フルパスを記入するやり方ではなく、ODBCデータソースにファイルを選択してやり、DSN名で呼び出すやり方でコードが書いてあったので、調べてODBCデータソースにDBを選択しました。

しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。

コードは
Set cnn2=Server.CreateObject("ADODB.Connection")
cnn2.open DSN名

ODBCデータソースへの設定は、ユーザDSNとシステムDSNに
MS Access Driver(mdb)を追加し、追加する際にデータベース部分に接続したいAccessファイルを選択しています。
その時のDSN名を、コードに記載されている名前と同じDSN名にしました。

試しにDSN名ではなくフルパスでAccessファイルに接続したら、問題なく表示されました。


この現象は、以前使っていたサーバのODBCに設定が残っている為、以前のサーバを見にいってしまっているのでしょうか?
それとも、単純に私の設定が間違っているのでしょうか?


知識不足で分かりにくい表現ばかりだと思いますが、どうぞよろしくお願い致します。

こんにちは。
以前も、ASPでAccessファイルへの接続について、こちらでお世話になりました。


別サーバで作ったショッピングシステムのサーバ移行をしています。
これは別の人が作ったシステムで、社内には誰もわかる人がいません。
(私が簡単なサイトが作れるので、話が回ってきた感じです)

ASPで作られているのですが、91個のASPファイルから同一Accessファイルへ接続している作りになっていることが今日分かりました。

コードに直接フルパスを記入するやり方ではなく、ODBCデータソースにファイルを選択し...続きを読む

Aベストアンサー

> しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。

どのような確認をして、どういったエラーがが出て、以前のサーバーへ接続しようとしているという結論になったのかを説明してみては?

旧サーバーをシャットダウンする。
旧サーバー上の DSN 定義の名前を変える。
旧サーバー上の DSN 定義を削除する。
旧サーバー上の MDB を別の場所に移す/ファイル名を変える/削除する
など、どれでもまぁ 「旧サーバーの MDB への連絡路を絶つ」 という状態にしてから新サーバーでテストしてみましたか?

明らかに DSN 名を使って MDB へアクセスしているコードが書かれている ASP のページを表示しようとしても旧サーバーに接続しているのでしょうか。
エラーが出たページのコードをもう一度確認してみてはどうでしょうかね。
おそらく一部のページでは接続文字列を直接コードの中に書いちゃってるって線じゃないでしょうか。

# まさか新サーバーに作った DSN に旧サーバーの MDB へのパスが書かれているってことはないと思いますが。

> しかし、確認するとエラーになり、どうも以前使っていたサーバへ接続しているような感じです。

どのような確認をして、どういったエラーがが出て、以前のサーバーへ接続しようとしているという結論になったのかを説明してみては?

旧サーバーをシャットダウンする。
旧サーバー上の DSN 定義の名前を変える。
旧サーバー上の DSN 定義を削除する。
旧サーバー上の MDB を別の場所に移す/ファイル名を変える/削除する
など、どれでもまぁ 「旧サーバーの MDB への連絡路を絶つ」 という状態にしてから新サーバ...続きを読む

Q.VBSだとADODBのプロバイダが見つからない件

こんばんは

.vbsファイルからデータベースを操作しようとして躓いています。
エクセルvbaでは動いているのに、.vbsに移植するとエラーが出てしまいます。
エラーの内容は「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」です。

次のスクリプトです。

'ここから
Dim ADO_CONNECT
Dim MDBName
Dim dbCon
Dim strSQL

ADO_CONNECT = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
MDBName = WScript.Arguments(0) 'エクセルVBAの場合はハードコード
Set dbCon = CreateObject("ADODB.Connection")
dbCon.Open ADO_CONNECT & MDBName & ";"
strSQL = "命令文"
dbCon.Execute (strSQL)

'ここまで

プロバイダーの場所、バージョン、32/64ビット、あたりに問題がのかもしれませんが、調べてもよくわかりません。エクセルVBAでは動作するので、参照設定?の違いなのかもしれません。どのように解決したら良いでしょうか。

Win 7 Pro 64bit
MS Accessなし
Excel 2007 あり

こんばんは

.vbsファイルからデータベースを操作しようとして躓いています。
エクセルvbaでは動いているのに、.vbsに移植するとエラーが出てしまいます。
エラーの内容は「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」です。

次のスクリプトです。

'ここから
Dim ADO_CONNECT
Dim MDBName
Dim dbCon
Dim strSQL

ADO_CONNECT = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
MDBName = WScript.Arguments(0) 'エクセルVBAの場合はハードコード
Set dbCon = CreateOb...続きを読む

Aベストアンサー

スクリプトを32bit版ファイラーから試すと問題ありませんでした。
が、Explorer (64bitで動作)から試すと同じエラーになりました。
Explorer 64bit で動作

Wscript も64bitが呼ばれる

ADODB の64bit版は存在しないのでエラー発生の流れかと思います。
(Win7 64bit & Office 2010 64bit でもほんの少しだけ確認)

なので、
http://d.hatena.ne.jp/KenKens/20140312/1394641831
の中ほどにあるように32bit版で起動しなおすようにすれば解決するものと思われます。

Qaspのページが表示できません

windows 2003 server上に
IIS6.0にて仮想ディレクトリを作成し、HTMLファイルは
動くのですが、なぜかASPファイルを表示
しようとすると、ページを表示できませんとなります。

仮想ディレクトリタブの実行アクセス許可は、スクリプト及び実行可能ファイルにして、ドキュメントタブの既定のコンテンツページを有効にチェックを入れ、index.aspを追加し、頭に置いてあります。
aspはマッピングしてあります。

Win2000で試したところ問題なく表示できます。

また、外部との接続はしていません。イントラネットのみです。(前の担当者が設定)初心者なもので全くわかりません。
どなたかご教授お願いいたします。

Aベストアンサー

インターネット インフォメーション サービス (IIS) マネージャ → マシン名(ローカル)→ Webサービス拡張 において、
Active Server Pagesの状態が“許可”になっていますでしょうか?
なっていない場合、Active Server Pagesを右クリックして許可するか、Active Server Pagesを選択した状態で、許可ボタンを押下してください。

Windows2000で問題なく動く、仮想ディレクトリタブの実行アクセス許可が問題ないのなら、恐らくこの設定を行えばOKだと思います。


一応、Windows2003インストール後のIISの設定手順を付け加えておきますね(^^)


・[スタート]-[設定]-[コントロールパネル]-[管理ツール]-
 [インターネット インフォメーション サービス (IIS) マネージャ]を起動 する。
・仮想ディレクトリを追加するWebサイト(ここでは[既定のWebサイト])を右クリックし、
 表示されたポップアップメニューから[新規作成]-[仮想ディレクトリ(V)]を選択する。
・「仮想ディレクトリの作成ウィザード」が起動後、「次へ」ボタンを押下する。
・[エイリアス(A)]に仮想ディレクトリとして呼び出す名前(ここでは「sample」)を入力し、「次へ」ボタンを押下する。
・公開したい物理フォルダのパスを指定する(ここでは「C:\sample」とする)。
・[読み取り(R)] および ASP等のスクリプトを実行する(S)] のみ権限を付与し、「次へ」ボタンを押下する。
・仮想ディレクトリの作成ウィザードが正常に完了後、「完了」ボタンを押下する。
・追加したWebサイト(ここでは[既定のWebサイト])の中に
 さきほど追加した仮想ディレクトリが存在するか確認する。
・Windows2000Serverの場合、以下の設定は必要ない。
・Windows2003Serverの場合、[Web サービス拡張]から[ActiveServerPages]を選択し、
 「許可」ボタンを押下する。
・「http://localhost/sample/ファイル名.asp」にアクセスすることで、画面が表示される。

※フォルダ名等はあくまで一例です。

インターネット インフォメーション サービス (IIS) マネージャ → マシン名(ローカル)→ Webサービス拡張 において、
Active Server Pagesの状態が“許可”になっていますでしょうか?
なっていない場合、Active Server Pagesを右クリックして許可するか、Active Server Pagesを選択した状態で、許可ボタンを押下してください。

Windows2000で問題なく動く、仮想ディレクトリタブの実行アクセス許可が問題ないのなら、恐らくこの設定を行えばOKだと思います。


一応、Windows2003インストール後のIISの設...続きを読む

QLAN上のMDBをIIS(ASP)から開く

DMZであるWEBサーバー(IIS4.0)からLAN上のMDBファイルを操作したいのですが・・・。うまくいきません。

ネットワークドライブでWEBサーバー側に登録して
ADODB.Connectionで直接、またはODBC介してでやろうとしましたが駄目でした。

IIS側でODBCの登録自体はうまくいっているのか(?)MDBの最適化はODBCの画面から行えます。

IIS越しでASPからデータベースを開こうとすると
[Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。

権限の問題なのでしょうか?

LAN側のファイルもフォルダもeveryoneフルコントロールに
してあります。(怖いけど(笑))

同様のケースで過去に解決された方、または良い案がある方。ご教授下さい。

Aベストアンサー

単純にIISからネットワークパスが参照できないだけなのでは、、、
IISは「IUSR_xxxx」というアカウントで稼動しているため、他のWinNT系PCには接続できないでしょう。「IUSR_xxxx」というアカウントからネットワークパスを参照できるようにしてあげて下さい。

QASPで画面間のパラメタ受け渡し

こんばんは。ASP初心者です。
ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

Aベストアンサー

1. Cookieを使う
2. 画面遷移を postで行い、hidden項目に値をセットする (要JavaScript)

私は面倒なのでセッション変数使ってますが、必要なくなればセッションをクリアすれば良いだけだと思います。

Session.Contents("hoge") = Empty

QHTMLからフォルダを開きたい

いつも大変お世話になります<(_ _)>

Webサーバー上にあるWebページ(HTML)の中に、ローカルPCのフォルダを開くリンクを付けたいのですが、
<a href="file://c:\windows">OPEN</a>
としても、何も反応しません。

いろいろ調べたのですが、上記の方法しか見あたりません。

なお、ブラウザのアドレス欄に file://c:\windows と入力すると、フォルダの内容が表示されます。
※Firefoxだと、ファイルの一覧になりますが・・・

何か環境によって挙動が異なるのでしょうか?
それとも、セキュリティ上の観点から最近じゃ出来なくなっているのでしょうか?

是非ともお助け下さい。宜しくお願い致します。

Aベストアンサー

file:///C:/windows/
/は三つでは・・・
 IEの場合はエクスプローラ(ファイルマネージャ)が開くような・・・
 IEはファイルマネージャーと一体のブラウザなので・・・

★実は、ローカルサーバーが必要です。
 apacheでも何でも良いので、WEBデータの入っているフォルダーを
<VIRTUALHOST 127.0.0.1>
C:\Document and settings\my document\web
 とかに指定して、Windowsのhostsファイルで、適当なサーバー名を指定しておきます。
myLocalhost 127.0.0.1
とか・・・

 そうすると
http://myLoclahost/
 で開けます。

 


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング