• ベストアンサー

データベースプログラムで発生したエラー

データベースプログラムを作成し、他のパソコンにインストールしました。データベースのもとはAccessで作成し、UDLファイルを経由してDataGridに現れるようにしています。 ところが、他のパソコンで実行テストしてみたところ。「指定したプロバイダがありません。」とでてしまいました。指定したプロバイダとは、「Microsoft JET 3.51 OLE DB Provider」のことであり、これが見つからないということだと思います。 このプロバイダを他のパソコン上に入れ込まなければならないのでしょうか?そうだとしたら、その方法は如何なるものでしょうか? なにとぞよろしくお願い致します。

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

  • ベストアンサー
回答No.1

恐らく、問題のPCには、Microsoft Data Access Components (MDAC)が必要です。 これをセットアップして下さい。 これは、 (1)VBに付属のディストリビューションウィザードで作成したプログラムのセットアップパッケージを作ると、自動的にmdac_typ.exeが含まれます。 (2)VBのCD-ROM中にmdac_typ.exeが含まれています。 (3)Accessのインストールでインストールされます。 (4)MIcroSoftのWebサイトからダウンロードできます(ざっと探しましたが、JET3.51なら、参考URLのもので良いと思います)。

参考URL:
http://download.jp.microsoft.com/products/ntupdate/nt4sp4/mdactypi.exe
e-papyrus
質問者

お礼

早速の御回答ありがとう御座いました。試してみたいと思います。

関連するQ&A

  • UDLファイルでパスワード設定されたmdbに接続

    ローカルmdbファイルにパスワードの設定を行わなければ、UDLファイルから「プロバイダ」→「Microsoft Jet 4.0 OLE DB Provider」を選択し、「接続」のユーザー名を「Admin」、パスワードなしで接続出来ています。 しかし、mdbファイルにパスワード設定を施したのちに、udlファイルに同じパスワードを設定して接続しようとすると、以下のようなメッセージが表示されてしまいます。 ************************************************* Microsoft データリンクエラー 「プロバイダの初期化中にエラーが発生したため、接続のテストに失敗しました。アプリケーションを起動出来ません。データベースが存在しないか、またはほかのユーザーが排他的にシステムデータベースを開いています。」 *************************************************  ・・・パスワード設定されたmdbファイルへのアクセスは、UDLファイルからは出来ないのでしょうか? 参考URLまたはアドバイスをお願いいたします。

  • ExcelVBAでのAccessデータベースとの接続

    ExcelのVBAによるAccessデータベースの操作を勉強中(始めたばかり)です。 ソフトバンク パブリッシング出版の「Excel VBA データベース構築」で勉強しているのですが、その中で、外部データとの接続に関して以下のような例文がありました。 Sub openADOdb() Dim myADOcon As ADODB.Connection Set myADOcon = New ADODB.Connection myADOcon.Open _ "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\残高DB.mdb" myADOcon.Close Set myADOcon = Nothing End Sub これを実行すると、myADOcon.Open ”Provider~ のところで、以下のエラーが発生しました。 実行時エラー’3706’: プロバイダが見つかりません。正しくインストールされていない可能性があります。 これはExcelもしくはAccessが正しくインストールされていないということなのでしょうか。対処法としてはどのような方法がありますか。 また、本には「プロバイダ名には、どのOLE DBプロバイダを使用するかをしていします。この文字列は、OLE DBプロバイダのマニュアルやヘルプを調べると記載されています。」と出ているのですが、OLE DBプロバイダのヘルプとはどのようにしたら見れるのでしょうか。 なお、Excel97とAccess97を使っています。 以上2点よろしくお願いします。

  • Access98で作ったmdbをAccess2000で変換したらエラー発生

    こちらのFREEの掲示板を使いながらASPを勉強しているところですが、 Access98で作ったmdbをAccess2000のデータベースユーティリティで 変換したところ、下記のようにODBC Drivers エラーが発生しました。 Access2000で作成したmdbを使用する場合にはODBC Driverもバージョン アップしなければならないのでしょうか?対処方法についてもご指導 をお願いしたいと思っています。 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0x5b8 Thread 0x66c DBC 0x2091ba4 Jet' を開くことができません。

  • SQL server2005で OLE DB接続できない。Native Clientのみ?

    ご存知の方、いらしたら教えていただければと思います。 現在は、S/C型の利用においてDBにAccess2000を使っていますが、様々なところで述べられている危険性に配慮して、SQLserverへの移行をしようとしています。 ちなみにSへはテーブルを配置し、CではExcelからADO/Jet OLE DBを経由して接続しています。 ユーザーにはフロントであるExcelを配布して利用しています。 さて本件ですが、SQLServerに移行しようと考えて、サーバにはExpress editionと接続コンポーネントを、クライアントには接続コンポーネントをインストールしたのですが、勝手が違うのでよくわからないです。 いろいろ試した挙句、ODBCからNative Clientとして接続すると可能であるところまでもってきましたが、もう一歩先に進めないで困っています。 つまり、目指すところは、ADO/OLE DB for SQL server を経由した接続です・・・ODBC経由だと、全てのクライアントに接続コンポーネントをインストールして回らなくてはならないので、大変です。 なにか考え方に誤りがあるのでしょうか、あるいはどこか注意すべきところがあるのでしょうか?よろしくお願いします。 ---以下、操作例--- メモ帳の拡張子をudlに変更してデータリンクファイルを作成。 これを開き、プロバイダータブにおいて MS OLE DB Provider for ODBC Driver を選択し、接続タブではサーバー名などを入力して接続テストすると可能である。 他方、プロバイダーにMS OLE DB Provider for SQL server を選択すると接続タブ完結できず、つまり接続できない。

  • 【VB】データグリッドコントロールにデータベースを表示させたい

    お世話になります。 フォーム上にMicrosoft DataGrid Control 6.0(OLEDB)を置いて、 データベースと接続し、データベースを表示させたいのですが、 データベースエンジンがMicrosoft.Jet.OLEDB3.51だとうまく表示してくれますが 4.0だとなぜか表示してくれません。 原因、対策などわかるでしょうか? ソースは以下のように単純なものです。 Private cn As ADODB.Connection Private rs As ADODB.Recordset Private Sub Form_Load() Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\パスワード管理.mdb" cn.Open Set rs = New ADODB.Recordset rs.Open "パスワード", cn, adOpenStatic, adLockReadOnly Set DataGrid1.DataSource = rs End Sub

  • ASPによる アクセス2000のデータベース更新について

    アクセス2000で作成したデータベースに ASPでデータベースを更新しようとしたのですが、エラーとなって更新できずにいます。 (アクセスデータベース内容) ID F1 F2 1 TEST1 TEST2 2 1 2 3 4 5 4 23 ※ID の 5  に 23 を登録したい。 (ASP内容) <% ' データベースへの接続を開始 Set cn = Server.CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb)}; " & _ "DBQ=" & Server.Mappath("TESTdb1.mdb") cn.Execute"INSERT INTO TTT(ID,F1) VALUES(5,23);" %> (エラー内容) エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。 /SQL-TEST/ncsch1.asp, line 7 アクセスの追加クエリで、INSERT INTO TTT(ID,F1) VALUES(5,23); を 実行したら、問題無く 5 23 が登録できましたので、データベース自体に他からの実行の場合、更新出来ないような 設定になっていると思うのですが、対処方法がわかりません。 どうすればよいか教えて頂けないでしょうか?

  • ASPプログラムにて、データベースファイルの更新ができません。

    参考本のサンプル集から取ったプログラム(名前と年齢の入ったデータベースに新たに追加するプログラム)なので、複雑なものではないのですが、プログラムをIEより実行すると、 ------------------------------------------------- エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] データベースまたはオブジェクトは読み取り専用なので、更新できません。 /AddNew.asp, line 38 ------------------------------------------------- (ちなみに、line 38はUpdate構文です。) というエラーが出てしまいます。 mdbファイルのプロパティは「読み取り専用」にはなっておりません。フォルダ設定も同様です。 ホームディレクトリの設定でも「読み取り」「書き込み」の両方にチェックマークが入っています。 どなたか、解決方法を教えて下さい。

  • VB6.0とaccessのDBを接続する

    初めまして。 件名のようなことを実行する際、 以下のソースを参考にしようと思ったのですが、 ******************************************* Dim cn As New ADODB.Connection Dim rc As New ADODB.Recordset ' 接続を確立する cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\My Documents\db1.mdb;" ' テーブル名を指定してレコードセットを作成する rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic ************************************* > cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ > "Data Source=C:\My Documents\db1.mdb;" この部分の接続文字はどのようにしたら取得できるのでしょうか? SQLserverのときは、コンポーネントから Microsoft ADO Data Control 6.0(AP4)(OLEDB) を追加し、プロパティでOLE DBプロバイダを選択して接続文字を取得したのですが、accessに繋ぐのは初めてで、わかりません。 どなたか宜しくお願いいたします!!

  • VB6でデータベースを変えるとテーブル形式エラーになります

    VB6 とACCESS97 でプログラムを作成、問題なく動いていました。 事情により、このパソコンにACCESS2000をインストールし(ACCESS97 と ACCESS2000 の二つが入っています)VB6のデータベースをACCESS2000に変換しました。 VBの参照設定をMicrosoft Access8.0 Object Livery から9.0 に換え、ACCESS 2000のデータベースのプロパティでファイルの種類をMicrosoft Access から Microsoft Access for Windows に換えました。 これを実行すると「実行時エラー3343 データベースの形式 "C:\SALES\TEST.mdb" を認識できません」と出ます。 他に修正すべきところがあるのでしょうか?それともバージョンの違うACCESS を併用するのはまずいのでしょうか? TEST.mdb をクリックすると、ACCESS2000で問題なく立ち上がります。 なお、VBからACCESSへの接続は下記のように書いています。 Public DB As DAO.Database Set DB = DBEngine.Workspaces(0).OpenDatabase("C:\SALES\TEST.mdb") 宜しくお願いします。

  • ActiveReportsとoracle

    vb6.0で ActiveReportsに、oracleデータを表示させたいのですが 接続の仕方がわかりません。 以下ヘルプファイルに、OLE DB の接続方法が載っていますが oo4oを推奨しています。 ご存知のかた教えてください。 ActiveReportsのサンプルは、全てAccessを使用しているのでわかりません。 ADO(ActiveX Data Objects)を使った接続 ■Microsoft OLE DB Provider for Oracleを使用したOracleへの接続 ConnectionStringプロパティ "Provider=MSDAORA.1;User ID=<user id>;Data Source=<servername>;Persist Security Info=False" ※ActiveReportsに関わらず、OLE DBプロバイダ経由の接続では、個々のデータベースアーキテクチャの違いを完全に吸収できない可能性があります。Oracleをデータソースとしてレポートを作成する場合には、Oracle社から提供されているOracle Objects for OLE(OO4O)を使用し、アンバウンド形式でレポートを作成する方法をお勧めします。

専門家に質問してみよう