アプリ版:「スタンプのみでお礼する」機能のリリースについて

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点よろしくお願いします。

A 回答 (4件)

myADOcon.Open _


"Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\残高DB.mdb"

↑「Open」ではなく、「ConnectionString」ではないでしょうか?

上記の接続を確率してから、「myADOcon.Open」だと思います。
    • good
    • 0

OSは何でしょう?Jet.OLEDB.3.51がインストールされていないと思われます。



OSやIEのバージョンによってはOLEDBのバージョンが異なるものが標準で入っていることのほうが多いので、バージョンの個所を変えれば接続できると思います。

私がよくやっている”インチキ”な確認方法です。
1.どこでもいいんで、拡張子が.udlのファイルを作成する(空でかまわない)。アイコンが変わればADO(MDAC)がインストールされている。

2.ファイルをダブルクリックで開くと”データリンクプロパティ”が表示されるので、プロバイダのタブを選択し、インストールされているJetプロバイダのバージョン番号を確認する。

ちなみに私のWin2000マシンでは、4.0が入っていました。

なお、Office97ではADOはインストールされません。
というか、Office97のあとに世に出てきたものなんで。
    • good
    • 0
この回答へのお礼

ありがとうございました。
お教えいただいた確認方法は便利そうなので、私も使わせていただきます。

お礼日時:2002/10/09 22:54

Excelはちょっとわかりませんが、AccessのADO接続は2000からですので、


97では無理だと思います。

OFFICEをバージョンアップするか、DAOの勉強をするかですね・・・
    • good
    • 0

97ではADOは使えません。



ADOは2000からです。
2000の場合はAccess2000の形式のデータベースに接続する場合プロバイダは
Microsoft.Jet.OLEDB.4.0 以上のバージョンを指定します。

"Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\残高DB.mdb"
ではなく
"Provider=Microsoft.Jet.OLEDB.4.0;" & _"Data Source=C:\残高DB.mdb"
で出来るはずです。

97で同様の処理をするならDAOを使えばできます。
DAOを使用してAccessデータベースに接続するんです。
OpenDatabase メソッドの引数にデータベース名を指定します
「参照設定」で [Microsoft DAO 3.5 Object Library] に参照します。

Dim ws As DAO.Workspace, db As DAO.Database
Dim rs As DAO.Recordset

Set ws = DBEngine.Workspaces(0)  'デフォルトのワークスペースを定義
Set db = ws.OpenDatabase("C:\残高DB.mdb") 'データベースを開く
Set rs = db.OpenRecordset("Table1", dbOpenDynaset) 'テーブル名を指定してレコードセットを作成する

こんな感じで出来ますよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。
よく分かりました。

お礼日時:2002/10/09 22:52

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