• 締切済み

Accessの条件式

こんにちは、VBA初心者です。 条件分岐についての質問です。 関連しそうなWebサイトなどを調べて見たのですが、今一分からないため質問させてください。 社内でAccessを使って荷物の出荷管理表をつくっています。 大まかなものは完成しているのですが1点だけ修正したい箇所があります。 出荷表は、「品番」「品名」「個数」「納期」「出荷日」「出荷責任者」「担当者」「出荷先」 これらを示すテーブルとクエリ、情報入力用のフォームと出力用のレポートからなっています。 この中で『出荷先』は客先の社名を記載し、その語尾に「様」を表示するようにレポート内にてラベルを使用しています。 今まではこれで良かったのですが、社の運営方針が少し変わり、自社倉庫・自社系列への出荷品が入ることになりました。 これらの出荷先への出荷の場合には「様」は必要ないということで出荷先への記載は社名(または倉庫名)のみとなります。 このため、レポート内での「様」ラベルの使用ではなく、条件分岐のIF文を使って必要に応じて語尾の表示ができるようにしたいのです。 条件式は、『出荷先のデータが○○○(自社関連先名)のとき○○○のみ表示』『出荷先データが×××(自社関連先以外)のときのみ×××+(スペース)様と表示』 もしくは、レポート内に「様」ラベルを残しておき、 『出荷先データが○○○のときのみこのラベルを非表示にする』というものを考えています。 自分でも初歩的な質問とは思うのですが是非ご教授をお願いします。 バージョンはXP2002でAccess2003を使用しています。 【テーブル】【クエリ】 品番、品名、個数、納期、出荷日、出荷責任者、担当者、出荷先 【フォーム】 テーブル1と同様の内容でテキストボックスとデータの新規作成、削除、レポート表示用のコマンドボタンを配置。 各テキストボックスの名前は[情報名T(例:出荷先T]としています。 【レポート】 フォーム同様にテキストボックス配置し、名前は[情報名LT]としています。 現在は出荷先の後ろにのみ、「様」ラベルを配置。

みんなの回答

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

ラベルでは、レコードの値に合わせて書式などを変えることはできません。 なので、敬称の表示/非表示を切り替えるのでしたら、テキストボックスを 新たに追加するか、現在の『出荷先』テキストボックスを連結コントロール (コントロールソースにフィールド名を指定したコントロール)から 演算コントロール(コントロールソースに式を指定したコントロール)に 変更するのがよいかと思います。 (但し、自社関連先かそれ以外かを判定できるフィールドがあることが前提) とりあえず、『出荷先』の文字数によらず敬称との間隔を一定にする意味で、 現在の『出荷先』を演算コントロールに変える方法を説明します。 現在『出荷先』を表示させているテキストボックスのコントロールソース:  出荷先 修正後(自社関連の『出荷先』が常に「○○○」を含むと仮定):  =出荷先 & IIF([出荷先] Like "*○○○*", "", " 様") ※IIF関数は、第1の引数が成立する場合には2番目の引数に指定した値  (ここでは空文字(=空白))を、成立しない場合は3番目の引数に指定した値  (ここでは「 様」)を、それぞれ返します。

_dejitto_
質問者

お礼

ご回答ありがとうございます。 >ラベルでは、レコードの値に合わせて書式などを変えることはできません。 そうですか、変更はできないのですね・・・ とりあえず教えていただいた方法を試してみようと思います。 丁寧な回答をありがとうございました。 また質問するような機会がありましたら宜しくお願いします。

回答No.1

出荷先のテーブルに敬称欄を追加すれば良いのでは?

_dejitto_
質問者

補足

ご回答ありがとうございます。 >出荷先のテーブルに敬称欄を追加すれば良いのでは? もちろんこの方法もできますが、 ただでさえフィールドが多くごちゃごちゃしているのでこれ以上の追加は避けたいのです。 ですので、VBAを使った方法を取りたく思い、今回の質問をさせていただきました。

関連するQ&A

専門家に質問してみよう