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点よろしくお願いします。
No.4ベストアンサー
- 回答日時:
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) 'テーブル名を指定してレコードセットを作成する
こんな感じで出来ますよ。
No.3
- 回答日時:
Excelはちょっとわかりませんが、AccessのADO接続は2000からですので、
97では無理だと思います。
OFFICEをバージョンアップするか、DAOの勉強をするかですね・・・
No.2
- 回答日時:
OSは何でしょう?Jet.OLEDB.3.51がインストールされていないと思われます。
OSやIEのバージョンによってはOLEDBのバージョンが異なるものが標準で入っていることのほうが多いので、バージョンの個所を変えれば接続できると思います。
私がよくやっている”インチキ”な確認方法です。
1.どこでもいいんで、拡張子が.udlのファイルを作成する(空でかまわない)。アイコンが変わればADO(MDAC)がインストールされている。
2.ファイルをダブルクリックで開くと”データリンクプロパティ”が表示されるので、プロバイダのタブを選択し、インストールされているJetプロバイダのバージョン番号を確認する。
ちなみに私のWin2000マシンでは、4.0が入っていました。
なお、Office97ではADOはインストールされません。
というか、Office97のあとに世に出てきたものなんで。
No.1
- 回答日時:
myADOcon.Open _
"Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\残高DB.mdb"
↑「Open」ではなく、「ConnectionString」ではないでしょうか?
上記の接続を確率してから、「myADOcon.Open」だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
EXCEL VBAでACCESSに接続時にエラーが出ます
Visual Basic(VBA)
-
.VBSだとADODBのプロバイダが見つからない件
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
初心者ですデータベースの形式 ...
-
【VB】コンボボックスにデータ...
-
vb.netでデータベース(Access)...
-
UPDATE時にSETしたい日本語文字...
-
ExcelVBAでのAccessデータベー...
-
データベースの接続ができない
-
複数SQL発行について
-
MDBをADO接続でINSERT・UPDATE...
-
XMLでデータとして画像を指定す...
-
VBとアクセスでSQL文に変...
-
VBA 変数名に変数を使用したい。
-
エクセルでXY座標に並べられた...
-
『列名 '担当者CD' があいま...
-
Dir関数で読み取り順を操作でき...
-
INT64対応のprintf系関数はあり...
-
他のMDBのテーブルに追加したい
-
VB6のメモリ解放に関して
-
DataTableに特定のフィールドが...
-
C# DataTableに最後に追加した...
-
一番右のスペース以降の文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
VB6.0でSQLServerへ・・・Recor...
-
UPDATE時にSETしたい日本語文字...
-
複数SQL発行について
-
初心者ですデータベースの形式 ...
-
データベースの接続ができない
-
ListviewにDB内容を表示し方に...
-
名前'dbOpenDynaset'は宣言され...
-
VBSでADOを使ってaccessのテー...
-
OracleDataReaderについて…
-
ExcelVBAでのAccessデータベー...
-
VB6.0とaccessのDBを接続する
-
vb.netでデータベース(Access)...
-
VB2005でmdbに接続するには?
-
VB6.0でアクセス2000...
-
VB6でデータベースを変えるとテ...
-
VBでmdbファイルの抽出
-
MDBをADO接続でINSERT・UPDATE...
-
VBでAccessにSQL文を実行して値...
-
VB2005でACCESSの処理
おすすめ情報