• 締切済み

accessテーブルの数値をエクセルセルに移VBA

accessファイルの abc.mdbのtable1のフィールド1のIDの数値を 現在開いているエクセルファイル Q.xlsxの A2セルに移行したいのですが エクセルのVBAにおいて Sub IDエクセルへ移行() ' 'Dim myCon As New ADODB.Connection Dim myRecordSet As New ADODB.Recordset Dim mySQL As String Dim dbFile As Variant Dim mySheetName As Variant Dim i As Integer dbFile = "C:\Users\USER\Desktop\ABC\abc.mdb" myCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbFile & "" myCon.Open mySQL = "SELECT * FROM table1" myRecordSet.Open mySQL, myCon, adOpenDynamic mySheetName = ActiveSheet.Name With Worksheets(mySheetName) .Cells(1, 2).Value = myRecordSet!ID End With myRecordSet.Close Set myRecordSet = Nothing myCon.Close Set myCon = Nothing ' ' ActiveWorkbook.Save End Sub ------------- 上記を実行すると objectがありません と myCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbFile & "" ここの部分が黄色くなってしまいます ここが さっぱり意味不明です すみません 宜しくお願い致します Microsoft ActiveX Data Objects 2.8 Library 6.1も 参照設定で チェックを入れました win10 office365

みんなの回答

回答No.6

既出ですが 'Dim myCon As New ADODB.Connection がコメントになってます。 シングルコーテーションを外してください。 とりあえず、今のエラーは消えるのではないかと。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.5

回答№2です 補足ありがとうございます。 気付いた点のみで否定的な回答になりますが 1.モジュール内のファンクション名が、重複しています >Function table1から2() 2.IDを更新しようとしています  IDのデータ型はテーブルのデザイン時に半自動で作成されるオートナンバー型  このIDは追加、更新が出来ません  補足頂いたサイトを観ましたがIDについては触れていません >Rdset![ID] = Forms![table1]![ID] >Rdset![ID] = Table![table1]![ID]

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

myCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbFile & "" のところを myCon.ConnectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & dbFile もしくは myCon.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & dbFile としてみたらどうでしょう。

sushidokei
質問者

お礼

有り難うございました。・・・

Powered by GRATICA
  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.3

Access が accdb ではなく mdb ということなら 接続文字列の Provider=Microsoft.ACE.OLEDB.12.0 を Provider=Microsoft.Jet.OLEDB.4.0 に変更してください

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

>accessファイルの abc.mdbのtable1のフィールド1のIDの数値を  現在開いているエクセルファイル Q.xlsxの  A2セルに移行したいのですが ★過去数回にわたり、AccessとExcelとの間で情報のやり取りについての質問ですね  失礼ながら全てが空振りの様ですね  原因を以下に記述します 1.一言でいえば情報の保存の相違  Excelはセルの単位、他方Accessはレコードの単位  従って情報のヤリトリは表(行列)でのみ  標準(1行目の項目名2行目以降が情報)の表コピペでよい 2.VBAは万能では無い 3.IDの長整数型のオートナンバー型の意味はご存知ですか  ★オラクル等RDBMSシステム特有のもの

sushidokei
質問者

補足

https://atmarkit.itmedia.co.jp/ait/articles/1512/10/news024.html#:~:text=Excel%E3%81%AE%E5%85%A5%E5%8A%9B%E3%82%BB%E3%83%AB%E3%81%A8%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E4%BD%9C%E3%82%8B%20Access%E3%81%AE%E3%80%8C%E5%95%86%E5%93%81%E7%AE%A1%E7%90%86%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%80%8D%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80VBA%E3%82%B3%E3%83%BC%E3%83%89%20ADODB.Recordset.Open%E3%81%A7SELECT%E6%96%87%E3%81%AESQL%E3%82%92%E6%8C%87%E5%AE%9A%20%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%9C%80%E5%BE%8C%E3%82%92%E8%A1%A8%E3%81%99%E3%80%8CADODB.Recordset.EOF%E3%80%8D%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%20ADODB.Recordset%E3%81%AF%E3%80%8C!%E3%80%8D%20%EF%BC%8B%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E5%90%8D%E3%81%A7%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%20%E6%AC%A1%E3%81%AE%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E7%A7%BB%E5%8B%95%E3%81%99%E3%82%8B%E3%80%8CADODB.Recordset.MoveNext%E3%80%8D%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%20Access%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%82%92%E5%AE%9F%E8%A1%8C%20%E3%80%8C%E7%B7%A8%E9%9B%86%E4%BF%9D%E5%AD%98%E3%80%8D%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%8C%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AE%E5%87%A6%E7%90%86%20ADODB.Recordset.Open%E3%81%A7DELETE%E6%96%87%E3%81%AESQL%E3%82%92%E6%8C%87%E5%AE%9A%20%E3%80%8C%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%97%E3%81%A6Access%E3%81%B8%E5%87%BA%E5%8A%9B%E3%80%8D%E3%81%AE%E5%AE%9F%E8%A1%8C こちらを参考にして 作ってみましたものです 有り難うございました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

> objectがありません > と > myCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbFile & "" > > ここの部分が黄色くなってしまいます 参照設定で Microsoft ActiveX Data Objects X.X Library X.Xは数値 にチェックを入れてから 'Dim myCon As New ADODB.Connection のコメントを外して実行してみてください。

sushidokei
質問者

補足

いつも有り難うございます 貴殿のアドバイスの実施と、他の方からの、”Provider=Microsoft.Jet.OLEDB.4.0 に変更”をしてみても、同じ反応が返ってきます

関連するQ&A