回答受付終了まであと7日

ExcelとAccessについて質問です。 CSVファイルをAccessにインポートしたい時、Accessのフォームにボタンを作ってVBAを書いて・・・とすれば自動化ができることがわかりました。 同じようなことをExcelでボタンを作ってVBAを書いて・・・でできるのでしょうか? (Accessのデータベース?を指定して、テーブルを指定して、そこに付け足す・・・のような) また、できる場合はどんなコードになりますか?

Visual Basic | Microsoft Access34閲覧xmlns="http://www.w3.org/2000/svg">100

回答(2件)

自分が知る限り ①対象のAccessファイルを呼び出し それ経由で構築 ②ADOでインポートもどきを構成 の2種類 ①バックグラウンドでAccessが動作するので負荷がかかる AccessのVBAと同等の記述で行えコードが短い Dim AccApp As Object '''Accessアプリケーション起動 Set AccApp = CreateObject("Access.Application") '''データベースファイル読み込み AccApp.OpenCurrentDatabase "「アクセスファイルのパス」" '''インポート AccApp.DoCmd.TransferText 0, "", "「テーブル名」", "「テキストファイルのパス」", False ' AcTextTransferType.acImportDelim : 0 '''データベースファイル開放 AccApp.Quit ''' Accessアプリケーション解放 Set AccApp = Nothing ②は仕様を綿密に提示しないと希望のものは提示しづらいのでスルー ・テキストデータの内部構成 ・テーブルのフィールドの構成 そしてコードは長くなる 負荷はあまりかからない

この回答はいかがでしたか? リアクションしてみよう

可能ですが、少し複雑なコードになります。理由はCSVファイルは「テキストファイルの一種」であるため扱いは比較的簡単です。しかしAccessは「データベース」ですので、それに合わせた処理が必要になります。 具体的には「レコードセットの作成」→「Accessデータベースへの接続」→「SQL文などで必要なデータを取得」→「取得したデータをExcelのシートに書き出し」となります。 個人的には一番手っ取り早いのは、「データをCSVファイルにし、AccessとExcelで共有する」方法です。つまり、CSVファイルを両者でそれぞれで取り込むVBAを組むのが最も楽で、保守性・安全性が担保しやすいです。