Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
Accessとの連携
投稿日時: 19/03/02 18:41:35
投稿者: chokobanana

諸事情によりExcelからAccessへの連携をすることになりました。
 
初めてなので今は参考になりそうなコードをデータ等の条件を同じにして、
どのような動きになるか勉強させていただいております。
 
下記コードはAccessに接続してデータをコピーし、Excelに張り付ける?コード
だと思うのですがエラーが出てしまいます。
 
実行エラー 「−2147467259」test.accdbが見つかりません。
 
同じフォルダ内にAccess「test.accdb」テーブル「データ」と下記コードをセットした
Excelを入れてます。
 
どなたかご教授頂けると幸いです。
どうぞよろしくお願いいたします。
 
 
 
Sub 連携テスト()
 
Dim strFileName As String
strFileName = "test.accdb"
 
Dim adoCn As Object
Set adoCn = CreateObject("ADODB.Connection")
adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\" & strFileName & ";"
 
Dim adoRs As Object
Set adoRs = CreateObject("ADODB.Recordset")
 
Dim strSQL As String
strSQL = "SELECT * FROM "データ"
 
adoRs.Open strSQL, adoCn
Worksheets(1).Range("A1").CopyFromRecordset adoRs
 
adoRs.Close
adoCn.Close
 
Set adoRs = Nothing
Set adoCn = Nothing
 
End Sub
 
 
 
 

回答
投稿日時: 19/03/02 19:55:01
投稿者: WinArrow
投稿者のウェブサイトに移動

>実行エラー 「−2147467259」test.accdbが見つかりません。
  
ファイルが見つからない
 ということで、再度、ファイル名などを確認しましょう。
  
回答者側としては、これ以上のコメントは難しいです。
 
なお、この板に掲示したコードは、手入力ですか?
コードペインからコピペしていますか?

投稿日時: 19/03/02 21:00:03
投稿者: chokobanana

ファイル名は書き直したり、新たにテーブルを作成し直してみましたがダメでした。
 
提示のコードはサイトから直接コピペしております。
Excelにも直接コピペしました。
 
手入力した方がよろしかったのでしょうか??
 
一度シャットダウンして、明日試してみます。
 
ありがとうございました。
 
 
 
 

回答
投稿日時: 19/03/02 22:22:19
投稿者: WinArrow
投稿者のウェブサイトに移動

chokobanana さんの引用:
ファイル名は書き直したり、新たにテーブルを作成し直してみましたがダメでした。
 
提示のコードはサイトから直接コピペしております。
Excelにも直接コピペしました。
 
手入力した方がよろしかったのでしょうか??

 
いいえ、手入力して欲しくはないです。
手入力で入力ミスがあると、
間違ったコードで判断することになり、質問者さんとのキャッチボールが増えてしまいます。
ついでに言いますと、コードの信憑性が低くなります。
 
サイトに掲載されているコードも同じようなことがいえます。
同じ環境で、同じ前提で作成されたコードではないからです。
 
 
しかし、途中の
>strSQL = "SELECT * FROM "データ"
は、コンパイルエラーとなり、実行できません。
 
でも、実行時エラーが発生しているということから、、
手入力ではないかと思っていました。
 

回答
投稿日時: 19/03/03 08:42:55
投稿者: ひぃーさん

こちらでテストした結果
 
strSQL = "SELECT * FROM "データ"
ではエラーになります。
 
Dim strSQL As String
strSQL = "SELECT * FROM データ"
で正常に動作します。テーブル名前の"が余分ではないでしょうか?

投稿日時: 19/03/03 09:03:15
投稿者: chokobanana

解決いたしました。
 
ACCESSファイル名をtest.accdbからtestに変更したら
実行できました。
 
見直してみたらファイルのパスがtest.accdb.accdbと
なっておりました。
 
accdbはファイル形式?かもしれません。
初歩的ミスですね。
 
親身に相談に乗っていただきまして感謝申し上げます。
どうもありがとうございます。