こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access レコードを分割する方法

早速ですが、質問させてください。

Accessでフォームから以下のようなテーブル1へ入力できるようにしています。

テーブル1のフィールド
検体名(文字型)、試験1(YES/NO型)、試験2(YES/NO型)、試験3(YES/NO型)

以下のようなレコードがあるとき、レコードを分割する方法をご教授いただけないでしょうか。

テーブル1
検体名1、1、0、1
検体名2、1、1、1
検体名3、0、0、1

分割後
検体名1、1、0、0
検体名1、0、0、1
検体名2、1、0、0
検体名2、0、1、0
検体名2、0、0、1
検体名3、0、0、1

目的としては必要試験毎に検体名と試験名が記載された小さいラベルを作りたいと考えています。
それらのラベルを1枚のラベル台紙にまとめて印刷できるようなレポートを作るため、試験毎 かつ ラベルの必要枚数分にレコードを分割したいと考えています。

何卒、よろしくお願いいたします。

投稿日時 - 2016-08-06 10:08:35

QNo.9211648

困ってます

質問者が選んだベストアンサー

ユニオン クエリで実現できます。

SELECT 検体名, 試験1, 0 AS 試験2, 0 AS 試験3 FROM Test_2 WHERE 試験1=True
UNION
SELECT 検体名, 0, 試験2, 0 FROM Test_2 WHERE 試験2=True
UNION
SELECT 検体名, 0, 0, 試験3 FROM Test_2 WHERE 試験3=True;

投稿日時 - 2016-08-06 10:52:11

お礼

早速のご回答ありがとうございました。
無事ユニオンクエリで作成することができました。
勉強になりました。

投稿日時 - 2016-08-10 15:51:12

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

> 目的としては必要試験毎に検体名と試験名が記載された小さいラベルを作りたいと考えています。

これが目的なら、下記のようなユニオンクエリがいいでしょう。

SELECT 検体名, "試験1" AS 試験名 FROM テーブル1 WHERE 試験1 = True
UNION ALL
SELECT 検体名, "試験2" AS 試験名 FROM テーブル1 WHERE 試験2 = True
UNION ALL
SELECT 検体名, "試験3" AS 試験名 FROM テーブル1 WHERE 試験3 = True;


UNION だけだと重複排除の処理が入りますので重くなります。
今回は、重複がないのが分かってますので UNION ALL の方がいいですね。

投稿日時 - 2016-08-08 13:54:53

お礼

ご回答ありがとうございました。
無事ユニオンクエリで作成することができました。
勉強になりました。

投稿日時 - 2016-08-10 15:50:36

あなたにオススメの質問