[リストへもどる]
一括表示

投稿時間:2003/07/22(Tue) 14:26
投稿者名:ヘイロー
Eメール:f_aitk@yahoo.co.jp
URL :
タイトル:
実行時エラー3706
今年の3月ごろにかとうさんが質問された内容と重なったいますが、
具体的な解決方法がわかりにくかったので改めて質問させて頂きます。
 WinMe,VB6 SP3,Access97
上記環境で開発しております。
開発したソフトを、ディストリビュージョンウィザードにて
配布用のSETUPプログラムを作成しました。
SETUPプログラムにてシステムを配布したところ、OSがWinMeのパソコンには
インストールができ、動作も問題ないのですが、
他のOS(試しましたのがWin98,2000,XP)では、インストールはできましたが、
ソフトを動かしますと、
「実行時エラー3706 プロバイダが見つかりません。正しくインストールされて
いない可能性があります。」
というエラーが表示されました。
ADOにてVBからアクセスのファイルを呼び込みデータの登録・修正などを行って
いるのですが、以下の部分が原因だと思うのですが解決策がわかりません。
   Set Cn = New ADODB.Connection
    Cn.Provider = "MSDataShape"
    Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                        & "Data Source=" & App.Path & "test.mdb"
どのOSにインストールするかは、配布先によって違います。
どのOSでも問題なく動作するにはどうしたらよろしいでしょうか?
よろしくお願いします。

投稿時間:2003/07/22(Tue) 16:35
投稿者名:だい
Eメール:dee_bassist@hotmail.com
URL :
タイトル:
Re: 実行時エラー3706

PRB: Jet 3.51 OLE DB Provider Is Not Installed With MDAC 2.1 or Later
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q197902

要約すると、
Jet 3.51 OLE DB Providerは、
VB6.0SP3以降の環境で作成されたセットアップファイルには含まれていません。

よって、対処方法としては、

Jet 3.51 OLE DB Providerを使うなら、
 MDAC2.0のmdac_typ.exe(VB6.0のCD-ROMの中にある)を配布する。
もしくは、
Jet 4.0 OLE DB Providerを使用する(Access97形式のMDBでもOK)。
となります。

余談ですが、WinMeのサポートは、VB6.0SP5からです。
http://www.microsoft.com/japan/msdn/vs_previous/VSTUDIO/techinfo/toolos.htm

投稿時間:2003/07/23(Wed) 11:05
投稿者名:ヘイロー
Eメール:f_aitk@yahoo.co.jp
URL :
タイトル:
Re^2: 実行時エラー3706
ご返答ありがとうございます。
原因は分かりましたが、対処方法で分からない点がありましたので教えてください。
@Jet 3.51 OLE DB Provider を使うときは、MDAC2.0のmdac_typ.exeを配布する。
 とありましたが、mdac_typ.exe自体をどこかのフォルダにコピーすればよろしいのですか?
 また、その場合は、どこのフォルダでしょうか?それとも、mdac_typ.exeの中身(setup.exeの
 ように複数のファイルの集合体)すべてをどこかのフォルダにコピーすればよろしいのですか?
 また、その場合は、どこのフォルダでしょうか?
AJet 3.51 OLE DB Providerを使用する。
 プログラムを下記のように「3.51」の部分を「4.0」に修正して、開発しているパソコンで実行した
 のですが、datagridのコラムが2つしか表示されませんし、ある検索条件にて検索した結果を印刷プ
 レビューさせているのですが、印刷プレビューされず、実行が止まってしまいます。
 まだ、どこか修正しないといけない場所があるのでしょうか?
    Set Cn = New ADODB.Connection
    Cn.Provider = "MSDataShape"
    Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                        & "Data Source=" & App.Path & "test.mdb"
    Cn.Open
 から
    Set Cn = New ADODB.Connection
    Cn.Provider = "MSDataShape"
    Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                        & "Data Source=" & App.Path & "test.mdb"
    Cn.Open
 に変更
以上、意味不明な表現があるかと思いますが、
分からない点がありましたのでお手数ですがよろしくお願いします。

投稿時間:2003/07/23(Wed) 12:07
投稿者名:だい
Eメール:dee_bassist@hotmail.com
URL :
タイトル:
Re^3: 実行時エラー3706
> (1)Jet 3.51 OLE DB Provider を使うときは、MDAC2.0のmdac_typ.exeを配布する。

mdac_typ.exeはデータアクセスコンポーネント(MDAC)のsetupファイルになっています。
3706エラーが発生するPCで、MDAC2.0のmdac_typ.exeを実行し、
当該エラーが回避されるかどうか をまずご確認ください。

配布については、SP2以前のVB6.0開発環境を作成し(WinMeはSP5からサポートなので厳密には不適)、
そこで、Setupファイルを作成するのが正しいのかもしれませんが、

ディストリビューションウィザードで作成されたPackage\Supportフォルダの中にあるmdac_typ.exeを
差し替えて、そのフォルダ内にあるBATファイルを用いてcabファイルを再作成することで、
Setupファイルに旧いmdac_typ.exeを含めることができます。
#ライセンス的に正当な配布方法は、念のためMS社へ確認されたほうが良いかもしれません。


> (2)Jet 3.51 OLE DB Providerを使用する。
>  プログラムを下記のように「3.51」の部分を「4.0」に修正して、開発しているパソコンで実行した
>  のですが、datagridのコラムが2つしか表示されませんし、

可能性としては、
[VB] Jet.OLE DB 4.0 Provider で DataGrid に表示できない
http://support.microsoft.com/default.aspx?scid=kb;ja;224192
をご確認ください(MSDataShapeがらみなので、違うかもしれません)。

投稿時間:2003/07/25(Fri) 10:34
投稿者名:ヘイロー
Eメール:f_aitk@yahoo.co.jp
URL :
タイトル:
Re^4: 実行時エラー3706
いろいろなアドバイスありがとうございました。
アドバイス頂きました2種類の方法で色々と試しまして、
Jet 3.51 OLE DB Provider を使い、MDAC2.0のmdac_typ.exeを配布することにしました。
ところで、
「ディストリビューションウィザードで作成されたPackage\Supportフォルダの中にあるmdac_typ.exeを
差し替えて、そのフォルダ内にあるBATファイルを用いてcabファイルを再作成する」
とありましたが、開発したソフトのEXEファイルのみを差し替えてcabファイルを再作成するだけでも
問題ないのでしょうか?今まで、プログラムを少し変更しただけで、ディストリビューションウィザードで
最初から作り直していましたが、少し時間がかかりますので。
よろしくお願いします。

投稿時間:2003/07/25(Fri) 10:49
投稿者名:だい
Eメール:dee_bassist@hotmail.com
URL :
タイトル:
開発したソフトのEXEファイルのみを差し替えてOKか?(was:Re^5: 実行時エラー3706)
> 開発したソフトのEXEファイルのみを差し替えてcabファイルを再作成するだけでも
> 問題ないのでしょうか?

そのアプリのDLLやOCXの依存関係に変更が無ければ
( ≒ 参照設定や使用しているコントロールの種類を変えなければ)、
cabファイルを再作成するだけでも大丈夫ですし、
セットアップファイル一式ではなく、EXEファイル単体だけを差し替えてもらっても大丈夫です。

投稿時間:2003/07/25(Fri) 11:17
投稿者名:ヘイロー
Eメール:f_aitk@yahoo.co.jp
URL :
タイトル:
Re: 開発したソフトのEXEファイルのみを差し替えてOKか?(was:Re^5: 実行時エラー3706)
いつも丁寧に返答して頂いて本当にありがとうございました。
また分からないことがありましたら、よろしくお願いします。