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

解決済みの質問

クエリでレコード追加

お世話になります。

Access2010

作成したフォーム上で「印刷」ボタンを押すと、ラベルシートに印刷されます。
このラベルシートは3列×10枚です。

現状、普通に印刷する分には問題ありません。しかし、必ずしも30枚印刷する訳でもないので、中途半端にラベルが残ったシートが出来てしまいます。
例えば、15枚印刷した場合、そのシートにはラベルが15枚残ってしまいます。

なので、印刷時にソースとなるテンポラリテーブルを作成し、そのテーブルの頭から15レコードにブランクをいれて、16枚目から印刷させたいところです。

で、実は上記の対処も出来ており特に運用上問題無いのですが、ブランクのレコードを挿入する手順として、
 1.まっさらなテーブルを作成
 2.指定された開始位置(上記例だと15)を取得
 3.ループで回してブランクレコードを15個作成
 4.16レコード目からラベル番号を入れていく。
 5.このテンポラリをソースとして印刷
としてます。

やりたいこととしては、上記のようにループでまわしながらブランクレコードを追加するのではなく、指定された開始位置の分のレコードを、クエリで一括挿入できないか・・というものです。

ご教授の程、宜しくお願い致します。

投稿日時 - 2014-07-25 11:51:47

QNo.8691739

すぐに回答ほしいです

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

私流のやり方です。

SELECT A FROM T2 WHERE T2.id<5;
UNION
SELECT A FROM T1 WHERE T1.id>0;

ダミーテーブルを用意し UNION クエリーを作成します。

[T2.A]

_dummy01
_dummy02
_dummy03
_dummy04
・・・・
_dummy99

ダミーテーブルのA列には、先頭ブランクのデータを上のように登録します。

これで、レポートには必要なダミー列が表示されます。

<出力時にダミー列の文字の色を白に変更>

僅かに1行のコードを書けば、これが達成されます。

※正規のやり方ではないので参考までに!

投稿日時 - 2014-07-25 12:29:00

お礼

fa007さま

早速のご回答ありがとうございます。
#1さまのご回答と同様に、ユニオンクエリを使えばいいんですね。

例まで載せて頂きありがとうございました。
勉強になりました。

投稿日時 - 2014-07-25 13:44:00

ANo.2

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

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

回答(2)

ANo.1

下記で紹介している方法なら、そのような一時テーブル自体が不必要です。

宛名ラベルを指定位置から指定枚数 印刷する方法 http://www.f3.dion.ne.jp/~element/msaccess/AcTipsRptHowToPrintRabelSpecificNumber.html

投稿日時 - 2014-07-25 12:06:23

お礼

hatena1989さま

早速のご回答ありがとうございます。
ユニオンクエリをつかえばいいんですね!

勉強になりました。ありがとうございました。

投稿日時 - 2014-07-25 13:41:12

あなたにオススメの質問