Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2227 / 2272 ツリー ←次へ | 前へ→

【3348】エクスポートの方法 古池 04/8/27(金) 21:14 質問[未読]
【3349】Re:エクスポートの方法 こもれび 04/8/27(金) 23:39 回答[未読]
【3350】Re:エクスポートの方法 小池 04/8/28(土) 10:04 発言[未読]
【3355】Re:エクスポートの方法 こもれび 04/8/28(土) 17:04 発言[未読]
【3358】Re:エクスポートの方法 古池 04/8/28(土) 17:33 発言[未読]
【3359】Re:エクスポートの方法 こもれび 04/8/28(土) 22:30 回答[未読]
【3361】追伸 こもれび 04/8/28(土) 23:12 発言[未読]
【3362】Re:追伸 古池 04/8/28(土) 23:54 お礼[未読]

【3348】エクスポートの方法
質問  古池  - 04/8/27(金) 21:14 -

引用なし
パスワード
   AというテーブルとBというテーブルがあるとします。
Bというテーブルに1000件データが入っているとして、
エクスポートする際に、それを100件ずつ分けて、
その100件のかたまりそれぞれの頭に、Aというテーブルのデータをくっつけてエクスポートしたいのです。
(Aというテーブルのデータは見出しだと思ってください。)
またまたその際に、ひとつのかたまりごとにFDを分けたいのですが、
見出しデータ+100件入ったら、FDを変えるようなメッセージを出して、
処理することはできますでしょうか?

分かりにくくてすいません^_^;

【3349】Re:エクスポートの方法
回答  こもれび  - 04/8/27(金) 23:39 -

引用なし
パスワード
   Bのデータを100件ずつ抽出してAのデータとユニオンクエリーをつくります。
1から10のファイルエクスポートの繰り返しの最後にメッセージボックス
を表示するというのはいかがでしょう。

【3350】Re:エクスポートの方法
発言  小池  - 04/8/28(土) 10:04 -

引用なし
パスワード
   ▼こもれび さん:
>Bのデータを100件ずつ抽出してAのデータとユニオンクエリーをつくります。
>1から10のファイルエクスポートの繰り返しの最後にメッセージボックス
>を表示するというのはいかがでしょう。

すいません。
ユニオンクエリーというのがわかりません(・・;)
もうすこし詳しく書き方を教えてくださいませんでしょうか?

【3355】Re:エクスポートの方法
発言  こもれび  - 04/8/28(土) 17:04 -

引用なし
パスワード
   こもれびです

「古池」様、「小池」様… どちらが正しいのでしょうか?? (・・;)

○ ユニオンクエリについて

野菜テーブル
id  商品名   価格
----------------------
1  じゃがいも  80
2  とまと    100
3  キャベツ   150
4  にんじん   120
5  かぼちゃ   150

果物テーブル
id  商品名   価格
----------------------
1  すいか   500
2  メロン   350
3  ぶどう   250
4   もも   120
5  パパイヤ   200

通常は上のような関連のあるテーブルもしくはクエリ同士をくっつける際に
用い、上の例ではクエリの結果として次のようになります。

id  商品名   価格
----------------------
1  じゃがいも  80
2  とまと    100
3  キャベツ   150
4  にんじん   120
5  かぼちゃ   150
1  すいか   500
2  メロン   350
3  ぶどう   250
4   もも   120
5  パパイヤ   200

SQLステートメントは次のようになります。

SELECT * FROM T_野菜 UNION ALL SELECT * FROM T_果物;

ユニオンクエリでは同じフィールド名である必要は無く、「フィールド数が同じ」
であればよく、次のテーブルを先の野菜テーブルと結合することも出来ます。

県名テーブル
id  県名  人口
---------------------
1  青森  1492669
2  秋田  1190007
3  岩手  1416421
4  山形  1236978
5  宮城  2348465
6  福島  2128309

結合すると、次のようになります。
----------------------
1  じゃがいも  80
2  とまと    100
3  キャベツ   150
4  にんじん   120
5  かぼちゃ   150
1  青森  1492669
2  秋田  1190007
3  岩手  1416421
4  山形  1236978
5  宮城  2348465
6  福島  2128309

結合するテーブルのフィールド数が違うときには、ダミーのフィールド
を設けてフィールド数を同一にします。

ACCESSのデザインビューでは作成することが出来ず、SQLを直接書き込む必要
があります。(しっかりアイコンだけは他と違うものが出てくる…)

こんな説明でいかがでしょうか

【3358】Re:エクスポートの方法
発言  古池  - 04/8/28(土) 17:33 -

引用なし
パスワード
   え〜っと…ありがとうございます。
古池でお願いします。^_^;

ユニオンクエリというのはなんとなく分かりました。

出来れば100件ずつ抽出する書き方も教えていただきたいのですが…。

【3359】Re:エクスポートの方法
回答  こもれび  - 04/8/28(土) 22:30 -

引用なし
パスワード
   こもれびです

>古池でお願いします。^_^;

了解いたしました 〆(..)メモメモ

>出来れば100件ずつ抽出する書き方も教えていただきたいのですが…。

分割するテーブルのレコード(データ)に1〜1000の番号を示す数字
(例えばid)が付いていることが条件でサンプルコードを書いておきます。
(この数字が付いていないと一筋縄ではいかなくなります)

○ betweenを使用した分割
-----------------------------------------------------
  For i = 0 To 9
   SQL01 = "SELECT T_社員.* FROM T_社員 " _
      & "WHERE (((T_社員.id) " _
      & "Between " & i * 100 + 1 & " And " & i * 100 + 100 & "));"
  Next i
-----------------------------------------------------

上のSQLステートメントにUNIONで結合するテーブルのSQLを記述すれば、
用意すべきユニオンクエリーが出来上がります。

【3361】追伸
発言  こもれび  - 04/8/28(土) 23:12 -

引用なし
パスワード
   こもれびです

For 〜 next のループのなかでユニオンクエリの作成
エクスポートおよびメッセージの出力を行います。

【3362】Re:追伸
お礼  古池  - 04/8/28(土) 23:54 -

引用なし
パスワード
   idはふってなかったんですが^_^;、
難しいようなので、idをふる方向でもう一度作ってみます。

また分からないことがあったらお願いしますね。

ありがとうございました。

2227 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078325
(SS)C-BOARD v3.8 is Free