- 締切済み
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
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- readme_eml
- ベストアンサー率33% (4/12)
既出ですが 'Dim myCon As New ADODB.Connection がコメントになってます。 シングルコーテーションを外してください。 とりあえず、今のエラーは消えるのではないかと。
- chayamati
- ベストアンサー率41% (260/624)
回答№2です 補足ありがとうございます。 気付いた点のみで否定的な回答になりますが 1.モジュール内のファンクション名が、重複しています >Function table1から2() 2.IDを更新しようとしています IDのデータ型はテーブルのデザイン時に半自動で作成されるオートナンバー型 このIDは追加、更新が出来ません 補足頂いたサイトを観ましたがIDについては触れていません >Rdset![ID] = Forms![table1]![ID] >Rdset![ID] = Table![table1]![ID]
- kkkkkm
- ベストアンサー率66% (1719/2589)
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 としてみたらどうでしょう。
- m3_maki
- ベストアンサー率64% (296/460)
Access が accdb ではなく mdb ということなら 接続文字列の Provider=Microsoft.ACE.OLEDB.12.0 を Provider=Microsoft.Jet.OLEDB.4.0 に変更してください
- chayamati
- ベストアンサー率41% (260/624)
>accessファイルの abc.mdbのtable1のフィールド1のIDの数値を 現在開いているエクセルファイル Q.xlsxの A2セルに移行したいのですが ★過去数回にわたり、AccessとExcelとの間で情報のやり取りについての質問ですね 失礼ながら全てが空振りの様ですね 原因を以下に記述します 1.一言でいえば情報の保存の相違 Excelはセルの単位、他方Accessはレコードの単位 従って情報のヤリトリは表(行列)でのみ 標準(1行目の項目名2行目以降が情報)の表コピペでよい 2.VBAは万能では無い 3.IDの長整数型のオートナンバー型の意味はご存知ですか ★オラクル等RDBMSシステム特有のもの
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 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 のコメントを外して実行してみてください。
補足
いつも有り難うございます 貴殿のアドバイスの実施と、他の方からの、”Provider=Microsoft.Jet.OLEDB.4.0 に変更”をしてみても、同じ反応が返ってきます
お礼