質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Basic 6.0

Microsoft Visual Basic 6.0(VB6)とはCOMプログラミングのためにMicrosoftが提供したプログラミング言語とintegrated develpment enviornment(IDE)のことです。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

11671閲覧

VB6のAccess2016 64bit(.accdb)への接続方法

Kyou_SE

総合スコア5

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Basic 6.0

Microsoft Visual Basic 6.0(VB6)とはCOMプログラミングのためにMicrosoftが提供したプログラミング言語とintegrated develpment enviornment(IDE)のことです。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2019/11/15 04:13

前提・実現したいこと

OS:Windows10 Pro 1903 64bit
Access:Office Pro 2016 64bit

Visual Basic 6.0でAccess接続を行う簡易プログラムを作成しております。
Openの箇所で以下エラーメッセージが発生しています。
DAO、ADO接続ともに成功していません。

発生している問題・エラーメッセージ

DAO接続 参照:Microsoft Office15.0 Access database Object Library errMsg:クラスが登録されていません
ADO接続 参照:Microsoft ActiveX Data Object 6.1 Library errMsg:プロバイダーが見つかりません。正しくインストールされていない可能性があります。

該当のソースコード

Visual

1'■Visual Basic 6.0 DAO接続 2Sub Sample() 3 Dim path As String 4 Dim db As DAO.Database 5On Error GoTo proc_err 6 7 'DBパス' 8 path = "D:¥Sample.accdb" 9 10 'DBオープン' 11 Set db = OpenDatabase(path) 12 13 'DB接続成功' 14 Debug.Print "DB接続成功" 15 16 GoTo proc_end 17proc_err: 18 Debug.Print Error 19proc_end: 20 If Not db Is Nothing Then db.Close 21 Set db = Nothing 22End Sub

Visual

1'■Visual Basic 6.0 ADO接続 2Sub Sample() 3 Dim path As String 4 Dim cs As String 5 Dim cn As ADODB.Connection 6On Error GoTo proc_err 7 8 'DBパス' 9 path = "D:¥Sample.accdb" 10 '接続文字列' 11 cs = "provider=Microsoft.ACE.OLEDB.16.0;Data Source=" & path 12 13 'DB接続' 14 Set cn = New ADODB.Connection 15 cn.ConnectionString = cs 16 Call cn.Open 17 18 'DB接続成功' 19 Debug.Print "DB接続成功" 20 21 GoTo proc_end 22proc_err: 23 Debug.Print Error 24proc_end: 25 'DB接続解除' 26 If cn.State <> adStateClosed Then cn.Close 27 Set cn = Nothing 28End Sub

試したこと

「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント 32bit」のインストールで接続できることを確認。
→Visual Basic 6.0のAccess接続は32bitライブラリでないと動作できない?

補足情報(FW/ツールのバージョンなど)

参考URL
http://note.phyllo.net/?eid=1106279
http://note.phyllo.net/?eid=1106281

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Visual Basic 6.0のAccess接続は32bitライブラリでないと動作できない?

Visual Basic 6.0で生成する実行モジュールは32bitの実行モジュールなので
使用するライブラリは32bitのものが必要です。

投稿2019/11/15 04:20

Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kyou_SE

2019/11/15 05:31

Y.H様 ご回答ありがとうございます。 以下確認したいことがあります。 ①VB6は32bitモジュールを使用するとのことですが、Access 2016 64bitのインストール時のライブラリだけでは接続できないという認識でよろしいでしょうか。 ②「再頒布可能コンポーネント 32bit」をインストールした場合、プログラムの中でAccess接続は32bitモジュールで行い、レポート作成などはAccess 2016 64bitで実行されるものでしょうか。 当環境がOfficeの変更ができないため、「再頒布可能コンポーネント 32bit」をインストールした場合の影響度合いが心配です。
Y.H.

2019/11/15 06:16

①そうです。 32bitアプリケーションから64bitのライブラリは使用できません ②は私にはわかりかねます。  MSのサポートに問い合わせて見られてはどうでしょう
Kyou_SE

2019/11/21 03:28

Y.H様 ご連絡が遅くなり申し訳ございません。 現状を報告いたします。 結果から申すと「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント 32bit」のインストールで接続を行うことができました。 Access 2016 64bitとの併用の件ですが、レポート作成、データ表示等Access 2016で行うことができたので、問題ないかと思います。(MSへの問合せは行っておりません) この度はお世話になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問