• ベストアンサー
  • 困ってます

Win10(IIS) ASPでMDBをアクセス不可

とても困っております。お願いします。 Windows7 Pro 32ビットでIISを有効にし、稼働していたASPを Windows10 Pro (OS:1903)64ビットに移行したところ、mdbへの接続でエラーになりました。 Microsoft Officeですが、 Windows7は、Office Professional Plus 2010(32ビット) Windows10は、Office Professional Plus 2016(64ビット)です。 Const strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\inetpub\wwwroot\nwgp\MDB\term.mdb" Set cnn = Server.CreateObject("ADODB.Connection") cnn.Open strConn  ←ここでエラー発生 この場合、on error resume next を入れても、「Webサイトはページを表示できません」と表示されます。 OLEDB.12をOLEDB.16に変更しても同じです。 mdbをaccdbに変換して、terma.ccdbに変えても同じでした。 Const strConn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\inetpub\wwwroot\nwgp\MDB\term.mdb" にすると、「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」 というエラーが、err.descriptionで表示されます。 フォルダやファイルのアクセス権は、IIS_USERSもeveryoneもフルアクセスにしてあります。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1130
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • mabyos
  • ベストアンサー率52% (61/117)

32ビットでiisを動かしている前提で https://clut.blogspot.com/2017/10/windows-serverasp-classic.html?m=1 下記のように32ビットのアクセスのドライバを認識させる https://www.idearu.info/article/data/ds1046 このような形でいけるのではないでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。 32ビットアプリの有効化をTrueにし、 Microsoft Download Centerにある、Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント の32ビット版をインストールしました。 これで、エラーが解消しました。なぜ?とは思いますが、とりあえず、動いたので大変助かりました。

関連するQ&A

  • mdbを直接開いてもasp側に影響を与えない方法について

    お世話になります。当方、Windows Server 2003 R2 SP1 で IIS6.0 を使用しています。 サーバ側に設置しているmdbファイルをODBCでシステムDSNに登録し、ASPから 接続しております。 メンテナンスなどで直接mdbファイルを開いている時に、ASPのページに アクセスすると以下のエラーメッセージが出て正常表示が出来なくなります。 ======================================================== HTTP 500.100 - 内部サーバー エラー - ASP エラー インターネット インフォメーション サービス -------------------------------------------------------- エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] '(不明)' は既に使用されているので、使用できませんでした。 ======================================================== mdbファイルを直接開いても、ASP側でもエラー表示されないように するにはどうしたらよいでしょうか? ソースは以下のようにしております。 Set cnn=Server.CreateObject("ADODB.Connection") cnn.open "dummy" cnn.close cnn.open "testdb"  '// ODBCをtestdbにしています。 SQL = "SELECT * FROM M_USER ORDER BY USERID" Set rs1 = cnn.Execute(SQL) よろしくお願いいたします。

  • IIS7でIIS6で動いていたASPアプリを動かしたい

    初めまして、santa51と申します 表題の通り、IIS7でASPアプリを動かしたいのですが、 動きません。 xpのIIS6では動いていました エラーの内容は Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Microsoft Access Driver] ディスクまたはネットワークのエラーです。 /????/?????/login.asp, 行 109 となります 109行は 107 DBName="Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("../cgi-bin/mydb/" & campany & "/master.mdb") 108 Set db=Server.CreateObject("ADODB.Connection") 109 db.Open DBName です。 確認がとれていることは 1.Server.Mappath("../cgi-bin/mydb/" & campany & "/master.mdb")は確実にあっています。 環境は vista business IIS7 access2003 です。 以上、よろしくお願いします santa51

  • ExcelVBAからAccessにアクセスする

    ExcelVBAからパスワード付きAccessにアクセスする ExcelVBAからADOでAccessに次のようにしてアクセスしています。 Dim Cnn As ADODB.Connection Set Cnn = New ADODB.Connection Cnn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;\" _ & \"Data Source=\" & mdbのフルパス Cnn.Open パスワード付きのmdbにアクセスするのはどのようにしたらよろしいでしょうか?

その他の回答 (1)

  • 回答No.1
  • tkf-
  • ベストアンサー率59% (625/1044)

Office 2016が「クイック実行形式」のものではありませんか? クイック実行形式の Office をインストールすると ODBC / OLEDB が利用できない https://blogs.technet.microsoft.com/officesupportjp/2016/09/06/not_available_access_odbc_oledb_outside_c2r_applications/ 対策はインストーラー形式のOfficeに入れ替えることです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。調べてみたところ、クイック実行形式ではありませんでした。 しかし、Office 64ビット版をアンインストールし、 Microsoft Acess Runtime 2016(32ビット)をダウンロードして、 インストールしてみましたが、ダメでした。 その後、Office2016 32ビット版をセットアップしてみましたが、やはり同じ結果でした。

関連するQ&A

  • Excel VBAにてADOを利用して、Access mdbへのコネク

    Excel VBAにてADOを利用して、Access mdbへのコネクションは可能ですがAccess adpへのコネクションができません。    ちなみにコードはコネクション部位のみ記述しますが、 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="*****.adp;" になります。  なお、目的はExcel VBAを利用して、Access adpデータを取り込みたいので他の方法で可能ならば 他の方法でもかまいません。 以上、よろしくお願いします。

  • ASP + MDBで発生したエラーが解決できません。。。

    こんにちは。 いま、ローカルPCでシステム開発をしています。 環境としては、  WindowsXP + IIS + ASP + MDB(ACCESS2003) です。 いま、MDBにDB接続して、データを取得しようとしているのですが、以下のエラーが発生していて、治りません。 【エラータイプ】 Microsoft VBScript 実行時エラー (0x800A01B6) オブジェクトでサポートされていないプロパティまたはメソッドです。:Open ソースコードは以下の通りです。 【ソース】 'コネクションオブジェクト Set objCon = Server.CreateObject("ADODB.Connection") objCon.Provider = "Microsoft.Jet.OLEDB.4.0" objCon.ConnectionString = "C:\test.mdb" objCon.Open 'レコードセットオブジェクト objRs = Server.CreateObject("ADODB.Recordset") objRs.Open strSQL, objCon, 3 上記のobjRs.Open→Set objRs = objCon.Executeに変更するとエラーは発生しないのですが、RecordCountなどのプロパティが利用できません。 色々と調査したのですが、全くわかりません。 どなたか情報をご存知でしたら、ぜひともご教示ください。 宜しくお願いします。

  • IIS7.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

  • ASPで、IISの設定がうまくいきません!

    初心者です。どなたかわかり易く教えてくださる方、よろしくお願いいたします。 WindowsXP Professional ,access2002 ,IIS 5.1 の環境で、ASPプログラムを作成しました。 マニュアル本に従って、仮想ディレクトリを作成しましたが、以下のようなメッセージが表示されてWEBページを表示させることができませんでした。 ---------------------------- このページを表示する権限がありません 提供された資格情報には、このディレクトリまたはページを表示する権限がありません。 HTTP 401.3 - リソース上の ACL によってアクセスを拒否されました。 ---------------------------- そこで、デフォルトの「C:\Inetpub\wwwroot]の配下に設置して実行してみました。 すると、データベースのデータをSelectで読み取る事は可能なのですが、Updateしようとすると以下のようなメッセージが表示され、データを更新することができません。 ---------------------------- HTTP 500.100 - 内部サーバー エラー - ASP エラー インターネット インフォメーション サービス [Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。 ---------------------------- 色々とネット上で調べてみましたが、私には表現が難しくて良く解りません。 私なりに調べたところでは、「権限」を「everyone」にするといい…というところまでは解ったのですが、その方法がわかりません。プロパティを見てみても、「everyone」を選択できるような項目が見つかりません。どこをどのようにどう設定すればいいのか、どなたか具体的に解り易く教えて頂けますでしょうか。よろしくお願いいたします。 (ちなみにコンテンツ自体は、別サーバーで正しく動いていたものです。新しくPCを購入したので、自身のPC上で動きを確認したくて設定をしています。)

  • MDBファイルがオープンできません

    C#2005で作ってます。 // データベース接続 Connection = ProviderFactory.CreateConnection(); Connection.ConnectionString = csBuilder.ConnectionString; Connection.Open(); Connection.Open()でエラーになります。 「'Microsoft.Jet.OLEDB.4.0' プロバイダーがローカル コンピューターに登録されていません」 Connection.ConnectionStringはProvider='\"Microsoft.Jet.OLEDB.4.0\"';Data Source='\"C:\test.mdb\"' と設定されてます。 上記エラーになる原因としてはx64環境だとJetエンジンが対応していないのでという 回答はいくつも見ましたが、開発・実行している環境は、ともにWindowsXP x86です。 しかもx86でコンパイルしても直りません。 何をどうすれば動くものなのでしょうか?

  • MDBからSQLSVに変更したい

    VS.NET2005(ASP.NET),MSDE2000使用の、初心者です。 MDBへの接続から、SQLSVにしたいと思います。SQLSVに、 テーブルとComputerID\ASPNETのログインをつくり、sysadminと Database role membershipを与えていますが、 以下のcon.open() で「権限の指定が正しくありません」が 出てしまいます。どのようにすれば、接続できますでしょうか。 Dim con As New OleDbConnection(ConfigurationSettings.AppSettings(strConnectionString)) Dim cmd As New OleDbCommand(strQuery, con) con.Open() ' Return cmd.ExecuteReader(CommandBehavior.CloseConnection) End Function web.config <appSettings> <!-- <add key="conStringFaq" value="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=C:\webdb\faq.mdb"/> --> <add key="conStringFaq" value="PROVIDER=SQLOLEDB;Data Source=ComputerID\VSNET;Initial Catalog=VSNET"/>

  • ADO&mdbで、リンクテーブルの作り方

    お世話になっています。 行き詰って困っています。 あるmdb(Access2000形式)内のテーブルを別のmdb(同)から見られるようリンクテーブルを作りたいのですができません。 VB.NET 2005 でやっています。 いろいろ調べてMSDN等からサンプルを引っ張り、以下のように作っても、 Dim catDB As ADOX.Catalog = New ADOX.Catalog Dim tblLink As ADOX.Table = New ADOX.Table catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Mdb_Link With tblLink .Name = "TEST_TBL" .ParentCatalog = catDB .Properties("Jet OLEDB:Create Link") = True <---ここと .Properties("Jet OLEDB:Link Provider String") = Mdb_Test <---ここと .Properties("Jet OLEDB:Remote Table Name") = "TEST_TBL" <---ここ End With catDB.Tables.Append(tblLink) catDB = Nothing .Propertiesの3行でエラー(プロパティ'Item'は'ReadOnly'です。)になってしまい、サンプル通りに行きません。 これについて何か心当たりありましたら教えてくださると嬉しいです。

  • IISでcakePHP

    現在IIS上でcakePHPを利用してPHPのwebアプリを作成しています。 事情によりrewriteは行わずに作成しているのですが、 URLを指定すると404エラーが返ってきます。 URLは以下です。 http://localhost/test/index.php/posts/index cakePHPはinetpub/wwwroot/test/直下に配置しています。 http://localhost/test/index.php の画面は見れています。 IISでrewriteをせずcakePHPの画面が見れる方法をご存知の方がいましたらご教授願います。 ●環境 windows XP Professional sp3 IIS 5.1 PHP 5.3.5 CakePHP 2.2.2

    • ベストアンサー
    • PHP
  • VB2005でMDBに接続方法

    お世話になります。 VB2005でアクセスに接続したいのですが、 よく理解できません。 こんな感じで、ネットで見たのを 記述したのですが、なんかエラーになります。 VB6みたいに参照設定が必要なのでしょうか? (記述例) Dim Cn As New OleDbConnection  ↑で警告?になる。 ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\データ.mdb") Dim SQLCm As OleDbCommand = Cn.CreateCommand ↑参照コンポーネントがみつかりませんでした。 と怒られます。 宜しくお願いいたします。

  • MDBパスワード設定済みDBへ接続

    MDBパスワード設定済み(排他オープンからの設定)のDBへ接続を試みているのですが、うまく 接続できません。 ご教授ください。 ASP vbscript <ソース> set objCon=ServerCreateObject("ADODB.Connection") cn1 = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "DataSource=" & Server.path("db.mdb") & ";Jet OLEDB:Database Password=password;" objCon.Open cn1 <エラー> Microsoft JET Database Engine エラー '80040e4d' パスワードが正しくありません。