Microsoft Access 掲示板

素人質問で大変恐縮なのですが、AccsesとExcelの連携がうまくいきません。助けてください。 / 2

7 コメント
views
4 フォロー
2

udlファイル(ユニバーサルデータリンクファイル)を作成し、有効な接続プロバイダーと接続文字列を確認されてはいかがでしょうか?

新規テキストファイルを作成し、拡張子をtxtからudlに変更してから開くと、データリンクプロパティのダイアログボックスが表示されます。ここで、使用可能なプロバイダーの確認や接続テストを行うことができます。
各項目を設定してからOKで閉じます。このファイルをメモ帳などのテキストエディタで開く(例えば、メモ帳を開いてメモ帳のウィンドウ内へudlファイルをドラッグ&ドロップする)とダイアログで設定した接続内容の接続文字列が記載されています。

もしかすると、OLEDB.12.0ではなく、OLEDB.16.0がインストールされているのではないかと思いますが、上記の方法で確認してみてください。

また、蛇足ですが、せっかくADOを参照設定されているのであれば、

Dim cn As Object
Set cn = CreateObject("ADODB.Connection")

のところは、

Dim cn As New ADODB.Connection

としたほうが、インテリセンスも構文チェックも有効になるので、コーディングが楽になると思います。

通報 ...
  • 5
    たんぽ 2021/10/11 (月) 03:39:50 316c2@dfd92 >> 2

    tone様
    夜分遅くに失礼します。仰って頂いた通り、URLファイルでデータリンクプロパティを確認してみたのですが…申し訳ありません、当方の入門的な技術力では各項目の設定が上手くいかず参照することが出来ませんでした…今一度知識を改めて挑もうと思います。また、これも完全な初歩的な問題で質問とするには大変お恥ずかしい限りなのですが、ActiveX DataObjects 6.1Libraryはこのままでいいのでしょうか。
    また、Dim cn As New ADODB.Connectionについて、シンプルでわかり易いです。
    これはぜひ参考に致します。ご回答心から感謝申し上げます。
    また、当方の回答が的を射ず、もしかしたら混乱されているかも知れません。その場合は何卒ご容赦ください。知識も浅はかですが、とにかく今はトライアンドエラーで解決を目指してみます。

    7

    1.参照設定について

    ActiveX DataObjects 6.1Libraryの参照設定はそのままのほうが良いと思います。複数個所でADOを使用されるなら参照設定しておいた方がメリットが大きいです。

    2.UDLファイルの設定について

    確認が足りず申し訳なかったのですが、64bitのWindowsで起動すると、データリンクプロパティも64bitで起動するようです。32bitのcmd.exeからudlファイルを開いてみると、32bitのプロバイダーのリストが表示されます。

    1.C:\Windows\SysWOW64\cmd.exeを開く
    2.udlファイルのパスを入力(またはudlファイルをドラッグ&ドロップ)
    3.エンターキーでコマンドを実行すると32bitのデータリンクプロパティが開く

    設定は、プロバイダーでリストから「Microsoft Office 12.0 Access Database Engine OLE DB Provider」を選択し「次へ」、接続で「データソース」にAccessファイルのフルパスを入力すればOKです。
    プロバイダーのリストに上記がないのであれば、32bitのACE.OLEDB.12.0がインストールされていないのだと思います。

    3.32bitのACE.OLEDB.12.0のインストール

    知らなかったのですが、クイック実行形式のOffice(2019はクイック実行形式のみ)の場合、別途インストールしなければOLEDBで接続できないようです。

    当方の環境では、64bitのACE.OLEDBがインストールされており、udlファイルを64bitで実行するとMicrosoft Office 12.0 Access Database Engine OLE DB Providerがプロバイダーのリストに表示されましたが、32bitで実行すると表示されませんでした。

    そこで、以下のページから、accessdatabaseengine_X64.exeをダウンロードし、インストールしてみたところ、32bit・64bitどちらにもMicrosoft Office 12.0 Access Database Engine OLE DB Providerが表示されるようになりました。

    Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント
    https://www.microsoft.com/ja-JP/download/details.aspx?id=54920

    うまくいくと良いのですが・・・。