- ベストアンサー
宛名ラベル-宛先を臨機応変に会社名か顧客名か変えたい
OS:WinXP Access Version:2000 たびたびお世話になります。よろしくお願いします。 宛名ラベルを作っています。 ラベルのレイアウトはこのようになっています。 エクセルファイルから顧客情報を抽出してテーブルを作りました。 ----------------------------- [=Trim[郵便番号]] [=Trim[住所1]] [=Trim[住所2]] [=Trim[会社名]] [=Trim[部署]] [宛先] ---------------------------- 各項目のTrimは、宛名ラベルウィザードにて 該当ラベルメーカーの型番を選んだら自動的に挿入 されました。 データベースに、顧客名があるときは、顧客名+様、顧客名が無かったときは 会社名+御中とし、宛名の末尾に無駄なスペースが入っていたらtrimで省きたい ということで、 >・・・宛先のコントロールソースに >=IIf(Nz([宛先])="",Trim([会社名]) & " 御中",IIf(InStr([宛先]," 様")<>0,[宛先],Trim([宛先]) & " 様")) 以上で解決したのですが、上司から新たな要望が・・・・・・。 これだけだと、「顧客名が無かったときは会社名+御中」の場合、 ---------------------- 郵便番号 住所1 住所2 会社名 部署名 会社名 御中 ---------------------- と、会社名が二つ載っているので変だ、直してほしいと言われました。 ・「顧客名が無かったときは会社名+御中とし、[会社名]は表示させない」 または ・「顧客名が無かったときは、[会社名]は表示せず、 宛名のところに[会社名]+御中とする」 といった関数が必要と思われますが、 どこにどう記述したらいいのかわからないので 教えていただけ無いでしょうか。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>=IIf(Nz([宛先])="",Trim([会社名]) & " 御中",IIf(InStr([宛先]," 様")<>0,[宛先],Trim([宛先]) & " この考えを流用されて、宛名があれば、会社名を表示しないわけですから 会社名のコントロールソースに =IIf(Nz([宛先])="","",Trim([会社名]) もし、宛先がなければ、なし、あれば会社名 の扱いです。
その他の回答 (2)
テーブルから直接レポートを作るのでなく、クエリーで整形したものでレポートを作るのは如何ですか?
お礼
アドバイスありがとうございます。 アクセスを始めて2週間なのですが クエリの制御の仕方がよくわからず。。。。 まだクエリのヘルプを読んでいる段階です。 クエリで制御もできそうですね。 これから挑戦してみます。 ありがとうございました!
- outerlimit
- ベストアンサー率26% (993/3718)
条件判定するセルを作り、そのセルで判定しパターン1,2,3等を表示し (判定を関数で行うか、入力にするかも含めて) そのパターンで印字(使用レイアウト)を変える方が、簡単だと思いますが
お礼
>条件判定するセルを作り というのは、エクセルの時点でしょうか。 アクセス上でVBで制御するのは難しいでしょうか。 もしエクセルからなりなおすとなると、 テーブルも作り変えることになりますが、 VBを探し回るよりも、エクセルを作り直したほうが 簡単でしょうかね・・・・・ もしできたらアクセス上で何とかしたいのですが、 恐れ入りますが他に方法はありますか?
お礼
ありがとうございます! ものすごく綺麗に解決しました! 会社名のコントロールソースで どうにかするのだろうとは 思っていたのですが・・・・ ""が抜けていたせいでうまく動かなかったのだと わかりました。 助かりました!