VBAでのインポートのやり方(アクセス2007)


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol123

これならわかるマイクロソフトアクセス活用法
            -->VBAでのインポートのやり方(アクセス2007)
              
発行者:高内 章治 2010年11月10日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】VBAでのインポートのやり方(アクセス2007)

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「VBAでのインポートのやり方(アクセス2007)」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: VBAでのインポートのやり方(アクセス2007)

─────────────────────────────────

今回も、お客様からの質問です。

アクセス200でのVBAを使ってのインポートのやり方です。

インポートを使うと、エクセルデータやCSVファイル、テキストデータをアクセスのテーブルに読み込むことができます。

今回は、VBAを使ったインポートのやり方を説明します。
次の、4つについて説明します。

  1. エクセルファイルからのインポート(XLSファイル)
  2. エクセル2007ファイルからのインポート(XLSXファイル)
  3. CSVデータからインポート
  4. テキストデータからのインポート

*************************

■1.エクセルファイルからのインポート(XLSファイル)

エクセル2000/2002/2003などのXLSファイルからのインポートです。

次のVBAを使用します。

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "テーブル1", "C:¥ファイル名.xls", True, ""

エクセルの「ファイル名.XLS」を「テーブル1」というテーブルにインポートします。
最後の「TRUE」は、エクセルの1行目に項目名が入っています。
エクセルデータが、項目名のないデータだけであれば、「FALSE」にします。

簡単ですね。

*************************

■2.エクセル2007ファイルからのインポート(XLSXファイル)

エクセル2007のXLSXのファイルも、XLSと同じVBAでインポートできまます。

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "テーブル1", "C:¥ファイル名.xls", True, ""

*************************

■3.CSVデータからインポート

CSVデータは、データの間が「,」(カンマ)で区切られているデータです。

CSVデータからのインポートもエクセルと同じようにVBAで簡単にできるようでしたが、実際におこなってみるといくつかのデータのインポートでデータが欠落するエラーがでました。
主キーのデータによっては、読み込めない場合があるかもしれません。

やり方としては、「項目名」の定義ファイルを作成して、読み込んだ方が確実だと思います。

そのやり方を説明します。

●(1)定義ファイルの作成方法です。

  1. 「外部データ」タブをクリックします。

  2. 「外部データの取り込みが表示されます。

  3. 「参照」をクリックして、CSVファイルを選択して「開く」をクリックします。

  4. 「現在のデータベースのデータの保存方法と保存場所を指定してください」で、2番目の「レコードのコピーを次のテーブルに追加する」を選択します。

  5. 横の追加するテーブル名を選択します。

  6. 「OK」をクリックします。

  7. 「テキストインポートウィザード」が表示されます。
    「区切り記号付き」がチェックされていることを確認します。

  8. ここで、左下の「設定」をクリックします。

  9. そのまま「保存」をクリックします。

  10. 名前を付けます、何でもよいです。
    「CSV定義」などです。

  11. 「OK」をクリックします。

  12. 「OK」をクリックします。
    CSVの定義が終わりました。

    -------------

    ここまでで終わりですがCSVを一度インポートしてもよいです。

  13. 「先頭行をフィールド名として使う」にチェックします。
    「次へ」をクリックします。

  14. 「次へ」をクリックします。

  15. 「完了」をクリックします。

  16. 「閉じる」をクリックします。
    データがテーブルへインポートされます。
    エラーがでたときは、内容をチェックします。
    最初の項目のタイトル名の表示がエラーになる場合があります。

    -------------- 


定義ファイルができました。

●(2)VBAのコードを作成します。

コマンドは次のようになります。

DoCmd.TransferText acImportDelim, "CSV定義", "テーブル1", "C:¥ファイル名.csv", True, ""

「CSV定義」というのが、CSVの定義をしたファイルです。
項目名を定義しています。
CSVの「「ファイル名.csv」を「CSV定義」を使って「テーブル1」のテーブルにインポートします。
「TRUE」は1行目がタイトルになるということです。
データだけの場合は、「FALSE」にします。

*************************

■4.テキストデータからのインポート

テキストデータからのインポートも項目を定義したファイルが必要です。

気をつけることは、

  • テキストファイルは、必ず固定長で作成します。

  • エクセルからテキストファイルを作成する場合は、「テキスト(スペース区切り).prnで保存して拡張子をtxtに変更したほうがよいです。


●(1)定義ファイルの作成方法です。 

  1. 「外部データ」タブをクリックします。

  2. 「外部データの取り込みが表示されます。

  3. 「参照」をクリックして、TXTファイルを選択して「開く」をクリックします。

  4. 「現在のデータベースのデータの保存方法と保存場所を指定してください」で、2番目の「レコードのコピーを次のテーブルに追加する」を選択します。

  5. 横の追加するテーブル名を選択します。

  6. 「OK」をクリックします。

  7. 「テキストインポートウィザード」が表示されます。
    「固定長」を選択します。

  8. 「次へ」をクリックします。

  9. 区切り線が表示されます。

  10. テーブルの項目に合わせて区切り線をいれます。
    クリックで区切り線を作成したりダブルクリックで削除できます。
    ドラッグで移動します。
    最後の区切り線は必要ないです。

  11. ここで、左下の「設定」をクリックします。

  12. 「フィールド名」と「開始位置」と「幅」が表示されています。
    テーブルの項目の幅とは異なっていても、問題はないようです。

  13. そのまま「保存」をクリックします。

  14. 名前を付けます、何でもよいです。
    「TXT定義」などです。

  15. 「OK」をクリックします。

  16. 「OK」をクリックします。
    TEXTの定義が終わりました。

    -------------

    ここまでで終わりですがTEXTを一度インポートしてもよいです。

  17. 「次へ」をクリックします。

  18. 「インポート先のテーブルが表示されています。

  19. 「完了」をクリックします。

  20. 「閉じる」をクリックします。
    データがテーブルへインポートされます。
    エラーがでたときは、内容をチェックします。
    最初の項目のタイトル名の表示がエラーになる場合があります。

 
●(2)VBAのコードを作成します。

コマンドは次のようになります。

DoCmd.TransferText acImportFixed, "TXT定義", "テーブル1", "C:¥ファイル名.txt", True, ""

「TXT定義」というのが、テキストファイルの定義をしたファイルです。
項目名を定義しています。
テキストの「「ファイル名.txt」を「TXT定義」を使って「テーブル1」のテーブルにインポートします。
「TRUE」は1行目がタイトルになるということです。
データだけの場合は、「FALSE」にします。

*************************


参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

寒くなってきました。

昨年は、新型インフルエンザが流行しましたが、今年は、A香港型のウイルスのようです。

今年も、流行するようです。

体調管理に気をつけないといけませんね。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
12:552003

アクセス全体

VBA

SQL Server