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

回答受付中の質問

Access2002で宛名印刷

Access2002を使用しています。
テーブルに郵便番号マーク・郵便番号・住所・宛名が入力されていて、
レポートで市販のラベル用紙に印刷できるようなレイアウトで、
印刷されるように以前会社にいた人が作ってくれた宛名印刷ようアクセスデータ
を利用しています。
しかし、例えば、10宛名分印刷できる用紙に、2宛名分だけ印刷したいとき
住所などが入らない残りの8宛名に、郵便番号マークだけ表示されてしまい。
用紙が無駄になってしまう状態になっています。
もったいないので、これを直したいと思うのですが、

どこを直せばいいでしょうか?
レポートのデザインなのか?もしくは他のどこかなのか?
インターネットで調べてみたのですが、いまいちよくわからず、
あまりアクセスに詳しくないので、詳しい方に聞いてみたいと思い
質問しました。

インターネットで調べるキーワードでも教えていただければと思います。
よろしくお願いします。

拡張子はmdbです。
Access2003 Acsess2007どちらも使えるパソコンがあります。

投稿日時 - 2017-11-22 13:54:16

QNo.9400072

困ってます

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

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

回答(4)

ANo.4

次の2通りを提案します。
1.郵便番号が空白のレコードを対象外とする。
 レポートのクエリーで郵便番号の抽出条件を is not null とする
2.レポートのクエリーで表示する項目(郵便No.)を計算して、レポートの郵便番号を郵便No.と差し替えます
「郵便No.: IIf(IsNull([郵便番号]),"","〒" & [郵便番号])」

通常レコードがなければ何も印刷しないのですが、位置決めの為かダミーレコードが存在するようですね
また10枚の余りの用紙の位置決めにも一工夫必要ですね

投稿日時 - 2017-11-25 16:32:56

ANo.3

【補足】添付画像を参照してください。

投稿日時 - 2017-11-22 17:13:18

ANo.2

Q、どこを直せばいいでしょうか?
A、住所等がない場合には、郵便番号マークを非表示にする。

レポートをデザインで開いて

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  Me.XXXXX.Visible = Len(Me.YYYYY & "")
End Sub

XXXXX・・・郵便マークを表示するテキストボックスの名前
YYYYY・・・住所を表示するテキストボックスの名前

 住所があれば、Me.YYYYY & ""のLengthは0。すなわち、Me.XXXXX.Visibleの値はfalse(0)になって表示されません。表示されなきゃー、印刷もされません。

 こんな仕掛けで・・・

投稿日時 - 2017-11-22 14:42:47

補足

回答いただきありがとうございます。
>Private Sub 詳細_Format(Cancel As Integer, FormatCount As >Integer)
>  Me.XXXXX.Visible = Len(Me.YYYYY & "")
>End Sub
を入力してみようとレポートのデザインを見てみたのですが、
どこに入力できるかわかりませんでした。
どこに入力するものでしょうか?
よろしくお願いします。

投稿日時 - 2017-11-22 15:50:26

ANo.1

おそらく「〒」のマークをデータと別に印字されるようにしていると思います。
それを郵便番号の前に郵便のマークをデータとして入れると何も印刷されなくなりますよ。
それをすると、切り替え時に郵便マークを郵便番号の一番前に表示するようにするか、郵便のマークだけのフィールドをつくるかどちらかにするといいと思います。

投稿日時 - 2017-11-22 14:26:02

補足

回答いただきどうもありがとうございます。
テーブルにフィールド追加だと、
入力担当者に入力が面倒と言われてしまいそうな気がします。
郵便番号データの前に「〒」だけ追加するのも面倒と言われそうですが、
なにかいい方法はないでしょうか?

投稿日時 - 2017-11-22 15:48:01

あなたにオススメの質問