• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルからアクセスにADO PWエラー)

エクセルからADOでアクセスする際のPWエラー

このQ&Aのポイント
  • エクセルからADOでアクセスする際に、パスワード認証エラーが発生する問題について質問です。
  • パスワードは正しく入力しているにも関わらず、エラーが発生することがあります。構文などが正しいか確認しましたが、原因がわかりません。
  • ファイルのパスも正しく指定しており、他の要素に問題がないことを確認しました。パスワードに関する設定や制約によってエラーが発生する可能性があるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

Accessのプロセスが残ってしまうので 下記に変更を。 ※Microsoft Office 14.0 Access Database Engine Object Library に参照設定が必要です Sub da2() Dim ac As Object Dim db As DAO.database Dim rs As DAO.Recordset Set ac = CreateObject("Access.Application") Set db = ac.DBEngine.OpenDatabase("e:\calendar.accdb", False, True, ";pwd=0000") Set rs = db.OpenRecordset("select * from 休日") Cells(1, 1).CopyFromRecordset rs '←ここも適宜修正を rs.Close: Set rs = Nothing db.Close: Set db = Nothing ac.Quit: Set ac = Nothing End Sub

TUYNRSLJBWGL
質問者

お礼

頂いた方法で無事接続できました。 ありがとうございました。勉強になりました。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

Access2010のaccdb なら http://okwave.jp/qa/q7948601.html かな? 上記リンク先のように以前の暗号化方法に変えてADOのままか 下記のようにするか ※Microsoft Office 14.0 Access Database Engine Object Library に参照設定が必要です Sub da() Dim db As DAO.database Dim rs As DAO.Recordset Set db = DBEngine.OpenDatabase("e:\calendar.accdb", False, True, ";pwd=0000") Set rs = db.OpenRecordset("select * from 休日") Cells(1, 1).CopyFromRecordset rs db.Close Set db = Nothing End Sub で、とりあえずレコードの取得は出来るかと思います。 良く調べてはいないのですが何故かADOだと・・・???。

TUYNRSLJBWGL
質問者

お礼

早速のご回答ありがとうございます。 DAOを使えばできるのですね。 今すべてADOで作ってしまったので、書き換えようと思います。 ちなみに質問後検証してみたのですが なぜか同じコードで、アクセスvbaで実行するとパスワード付きのファイルに接続することができました。 同じコードをエクセルvbaに張り付けて実行すると質問文と同じエラーになります。 エクセル側に原因がありそうです。

関連するQ&A