ACCESS Excelファイル自動インポート機能(VBAコード公開)
ACCESSにはExcelやcsvなどの様々なファイルからデータを取り込むことが可能です。
その中でもよく利用するのはExcelからのデータ取り込みではないでしょうか。
今回は、ACCESS VBAを使って、ExcelファイルをACCESSに自動インポートする機能の開発事例をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。
完成形
最初にExcelファイルインポート機能の完成形を紹介します。
非常に簡単な、ボタンが1つだけのフォームです。
インポートボタンを押すことで、Excelファイルを指定したテーブルに取り込むようにしてあります。
インポート対象のテーブルは以下のTMP_売上です。
ご覧のようにレコードは入っておらず、空の状態です。
ここでフォームのインポートボタンを押してみます。
ファイル選択ダイアログが表示されますので、インポートするExcelファイルを選択します。
インポート処理終了のメッセージが表示されます。
ここで、先ほどのTMP_売上テーブルを見てみましょう。
上記のようにテーブルにレコードが登録されていることが分かります。
これが、インポート機能の一通りの流れです。
フォームの作成
では、作成方法に入ります。
まずはフォームをデザインビューで見てみましょう。
インポートボタンのクリック時イベントに、イベントプロシージャを設定してあります。
このイベントプロシージャでインポート処理をさせています。
VBAコード
では、インポートボタンに設定したVBAのコードを紹介します。
Private Sub インポート_ボタン_Click()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TMP_売上", getFileName(""), True
MsgBox "インポートが終了しました。", vbInformation + vbOKOnly, "インポート終了"
End Sub
DoCmd.TransferSpreadsheetメソッドを使って、Excelファイルの取込を行うプロシージャです。
TMP_売上にExcelファイルからインポートを行うように指示しています。
getfileName(“”)というのは別途作成してあるプロシージャで、取り込むExcelファイルのフルパスを返すものです。
そして、インポート処理後にMsgBox関数で取込終了のメッセージを出しています。
インポート処理が終了がユーザーから分かりにくいため、処理終了時にメッセージを出すようにしておくとわかりやすいでしょう。
DoCmd.TransferSpreadsheetメソッドに関して詳しく知りたい方は、以下の記事もご覧ください。
以上、Excelファイル自動インポート機能をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。