- ベストアンサー
Accessテーブルへのデータ取り込み方法
- Accessテーブルにデータを取り込む際の方法を教えてください。
- テーブル1のデータを名前を含むテーブルに書き込む方法を教えてください。
- 別のテーブルを書き込む場合にも同じ方法が使えるのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> テーブル1は,3レコードではありません。 質問文にはフィールド1~3が示されていたので「3レコードのみか?」とお尋ねしたのですが・・・。 そうですか、4レコードですか。 (というと、いやいや実は電話番号やメールアドレスもありまして・・・、と続いたり? -_-#) データの例示により、質問は「1名に関する情報が1テーブルですか?」とします。 ・指定されたテーブルに複数の個人はありますか? ・格納順は一定ですか? ・同じ情報が2回(以上)出てきますか? ならばVBAでコーディングですね。 準備.テーブル名一覧を作成し、手動で良いのでテーブル名を格納します。(TXTファイルでも可) 1.テーブル名一覧、出力するレコードを格納するテーブルを開く。 2.テーブル名一覧を読み、以下処理を実行。(ループ1) 3. 指定されたテーブルを開く。 4. 出力するレコードを作成する。 5. 指定されたテーブルを読み、以下ループ処理を実行(ループ2) 6. 指定されたテーブルから1レコード読む。 7. 読んだ内容により、出力するレコードの該当列に格納する。 8. ループ2の終わり(レコードが有る間) 9. 出力するレコードを登録する。 10. 指定されたテーブルを閉じる。 11.ループ1の終わり(レコードが有る間) 12.テーブル名一覧、出力するレコードを格納するテーブルを閉じる。 「指定されたテーブルに複数の個人があります」なら 7.で判断し、9.4.を行えば良いです。 「格納順は一定ではありません」なら 7.の格納を工夫してください。 「同じ情報が2回(以上)出てきます」なら やはり7.の格納を工夫してください。
その他の回答 (2)
- bin-chan
- ベストアンサー率33% (1403/4213)
そうですか。40項目ですか。 テーブル(=対象者数)はいくつ位あるのでしょうか? 項目数、位置が同じ、という前提で、 対象者が10件程度なら、以下の方法もあり、かな? 1.EXCELに1テーブル分読み込む(または貼り付け) このとき、一名分がすべてA列ですね。 2.データ全体をコピー。(クリップボードへの格納) 3.別シート(先の例の出力テーブルに相当)を開き 「形式を選択して貼り付け」-「行列を入れ替える」 4.テーブルがまだあれば1へ戻る。 5.出来上がった別シート(先の例の出力テーブルに相当)を ACCESSのテーブルにコピー&ペースト。
- bin-chan
- ベストアンサー率33% (1403/4213)
テーブル1が3レコードのみ、なら話は別ですが、 レコードを一行にまとめる条件が無い様に思います。 「クロス集計クエリ」が近いように思いますが、最低3フィールド必要です。 値の具体例をあげていただくことは可能ですか?
補足
ご回答ありがとうございます。 補足いたします。 テーブル1は,3レコードではありません。 私,クロス集計クエリがピンときませんので,もう少し具体例を挙げます。 たとえば 「テーブル1」の中身が 名前,Aさん 性別,男 年齢,25 住所,東京 であったとします。 この元データは,「テーブル2」「テーブル3」・・・とたくさんあります。 次に格納先のテーブル, テーブル名を「台帳テーブル」で, フィールドは, ID,名前,性別,年齢,住所 となっていて,それぞれ下記のようにデータを格納します。 ID,名前,性別,年齢,住所 テーブル1,Aさん,男,25,東京 格納したら次に「テーブル2」を見に行きそのデータを書き込みます。 次に「テーブル3」と次々にデータを書き込みに行くようなイメージです。
補足
> (というと、いやいや実は電話番号やメールアドレスもありまして・・・、と続いたり? -_-#) 実はそうなんです。元となるテーブルのレコード数は,もっとたくさんあります。だいたい40レコードくらい。 おっしゃるとおりで,1名に関する情報が1テーブルというイメージです。 詳しい説明ありがとうございます。 手順を具体的に追ってVBAでコーディングしてやってみます。 当方,プログラム初心者なので,どこまでできるかわからないのですが,VBAの参考書片手にがんばってみたいと思います。