タックシールに印刷したいのですが、ひとつのシールに複数のレコードを入れたいのです。
タックシールは8行3列のもので、その一枚につき、5行3列のレコードが入ります。
一枚に15個のレコードが入りますが、一度に出力するのがシール2枚とかなので、横一列に印刷させると無駄になってしまいます。
説明がわかり難いかと思いますが、よろしくお願いします。
そのまま横に並べると、7件目のレコードがタックシールの3枚目に印刷されてしまう、そのため、タックシール1枚目、2枚目はまだ空きがあるのに、3枚のシールを使うのはもったいない、ということですね。
フォームの印刷か、レポートの印刷かは分かりませんが、どちらにせよ、サブフォーム(あるいはサブレポート)を利用すればいいのではないかと思います。
元のテーブル(クエリかもしれませんが)のレコードを3分割して3つのワークテーブル(あるいはクエリ)に分けてそれぞれのワークテーブルでひとつの列のタックシールに対応させるようにすればいいんじゃないかと。サブフォームはそれぞれのワークテーブルに対応させます。
ひとつのワークテーブルには1レコードで元データの15件分(タックシール1枚分)のレコードを持つようにして1~15件目はワークテーブル1、16~30件目はワークテーブル2、31~45件目はワークテーブル3、というようにデータを割り振っていけば、2枚分のデータ(例えば20件)あるときに2つのタックシールで済むようになるでしょう。
そのまま横に並べると、7件目のレコードがタックシールの3枚目に印刷されてしまう、そのため、タックシール1枚目、2枚目はまだ空きがあるのに、3枚のシールを使うのはもったいない、ということですね。
フォームの印刷か、レポートの印刷かは分かりませんが、どちらにせよ、サブフォーム(あるいはサブレポート)を利用すればいいのではないかと思います。
元のテーブル(クエリかもしれませんが)のレコードを3分割して3つのワークテーブル(あるいはクエリ)に分けてそれぞれのワークテーブルでひとつの列のタックシールに対応させるようにすればいいんじゃないかと。サブフォームはそれぞれのワークテーブルに対応させます。
ひとつのワークテーブルには1レコードで元データの15件分(タックシール1枚分)のレコードを持つようにして1~15件目はワークテーブル1、16~30件目はワークテーブル2、31~45件目はワークテーブル3、というようにデータを割り振っていけば、2枚分のデータ(例えば20件)あるときに2つのタックシールで済むようになるでしょう。
回答ありがとうございます。
なかなか複雑そうですね。やってみます。
VBAを使って、印刷の都度、印刷開始位置を指定するという方法がありますので、
下記参照してみてください(Access2000用ですが基本、それ以降のものでも使えます。)
印刷開始位置の指定については対応できております。
質問は、ひとつのシールに複数のレコードを印刷できるか、です。
40個のレコードがあり、一枚のシールに15個入るとします。
1~15のレコードは一枚目
16~30のレコードは二枚目
といった風に印刷したいのです。
各々のレコードにシール番号をふり、それをシールごとに印刷させればいいのかなあと考えています。
回答ありがとうございます。
なかなか複雑そうですね。やってみます。