MS Access Tips/Sample and VBA and Blog customize etc...

外部データのフィールドを指定してインポート

当方の掲示板にタイトルのような質問がありました。

hatena の Microsoft Access 掲示板|フィールド(?)を指定してインポート

下記の記事の逆の処理ですね。

サンプル作ってみました。

テーブルのフィールドを指定してエクスポート - hatena chips

フィールド指定インポートフォーム

難易度:

概要

いろいろな方法が考えられます。

対象の外部データからリンクテーブルを作成する。
リンクテーブルのフィールドをリストボックスに表示させ、ユーザーにインポートしたいフィールドを選択させる。
選択したフィールドを含むテーブル作成クエリのSQLをVBAで生成して、このSQLを実行する。

VBAから Schema.iniファイル(定義情報ファイル)を作成してSQLでインポートする。

などなど・・・・。

今回は、SQLで外部データに接続して、フィールドを取得してリトスボックスに表示する。
ユーザーが選択したフィールドを含むテーブル作成クエリ(SELECT ・INTO文)のSQLを生成、このSQLを実行。
という方法にしてみました。
この方法だと、リンクテーブルもダミーのクエリも必要ないというメリットがあります。

サンプル仕様

インポートするデータファイルはCSV形式、一行目がフィールド名。データベースファイルと同じフォルダーの「DATA」フォルダー内にデータファイルは存在する。

コンボボックス「cbData」でデータファイルを選択すると、そのファイルのフィールド名がリストボックス「lstSelField」に表示される。

リストボックスでインポートしたいフィールドを選択する。インポート後のテーブル名は、テキストボックス「txtTableName」で指定。

コマンドボタンをクリックすると指定した外部データがインポートされてテーブルが作成される。

フォームモジュール

このコードはCSV形式テキストファイルとの接続の例ですが、他の種類のデータファイルと接続するときは、FROM句の外部接続文字列を変更します。例えば、エクセルなら、

SELECT * FROM [Excel 8.0;Database=ファイルパス;HDR=YES;].[シート名];

というような文字列が生成されるようにします。

サンプルファイルが下記からダウンロードできます。
FrmSelectFieldImport_07.zip (Access 2007-2010 形式 - 22kb)
FrmSelectFieldImport.zip (Access 2002-2003 形式 - 16kb)
FrmSelectFieldImport_2k.zip (Access 2000 形式 - 20kb)

拍手する

2 Comments

ここ says..."マクロ1が作成できません"

お世話になっています。
Accessの初心者です。
ユーザーがインポートの項目を選ぶという、私がやりたかったことのサンプルがあり、ダウンロードさせて頂きました。
すばらしいので使いたいのですが
会社のセキュリティから自宅のみのダウロードで中身を自分を作成しなといけません。(^^ゞ
マクロ1のアクションのところで選択ができません。
"テキスト選択"が項目になくどうして作っていいかわかりません。
どうすればいいですか?
また、フォームを作りましたが、関連づけれられていないオブジェクトになります。
Excelでは色々作成している経験があるのですが、Accessでは初めてです。
どうぞ、よろしくお願い致します。

2016.09.14 23:43 | URL | #- [edit]
hatena says..."re:マクロ1が作成できません"

サンプルファイルに「マクロ1」というのがありますが、これはテスト用に作成してものを削除し忘れたものです。マクロは必要ありません。

必用なのはこのページにあるVBAのコードです。これをフォームのモジュールにに貼り付けてください。

ACCESSでのVBAの使い方、コードの意味はこのスペースでは説明できませんので、入門書なり、解説WEBサイトで勉強してください。

2016.09.15 14:15 | URL | #5uE6dEgY [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/357-6850cb20
該当の記事は見つかりませんでした。