• 締切済み

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

  • Access2003 タブコントロールについて

    フォームの詳細にタブコントロールを配置して、 その中にサブフォームを入れています。 そのサブフォームにあるテキストボックスの文字を レポートのテキストボックスに表示させたいです。 ただのフォームなら =Forms!フォーム名!テキストボックス名 でレポートに表示できますがタブコントロールがある場合は レポートのテキストボックスのコントロールソースに どういうふうに記述すればよいのでしょうか? よろしくおねがいします。

  • Accessのフォームについて教えて下さい

    Access 2010のフォームについてお教え下さい。 テーブルにはテーブル名T1、フィールド「ID」、「Price」というテキストボックス。2フィールドがあります。 テーブルの各データは、 ID,Price 001,100 002,200 003,300 フォームにはにフォーム名F1、「cmb」というコンボボックスと、「price」というテキストボックスが配置されています。 「cmb」のデータは値集合ソースで、「SELECT T1.ID FROM T1;」と指定しています。 「cmb」で選択したデータのプライスを「Price」テキストボックスに表示したいと思います。 例えば、「001」を選択したら、「100」と表示されるようにしたいと思います。 色々調べているのですが、どうやってやるのかわかりません。どのように実現したらよろしいでしょうか? よろしくお願いいたします。

  • accessのレポートで…

    レポート(テーブル1から作成)にあるフィールド1には「1・2・3…」という数字が入っています。 この1・2・3はテーブル2(ID・名前)とリンクしています。 フォーム上ではコンボボックスにして、テーブル2の名前も表示するようになっています。 (テーブルに値としては入っていません) これでレポートを作成した場合、テーブル2の名前を表示させたいのですが、テキストボックスで Iif([フィールド1] = "1","****",Iif(… というようにしてしまうと、せっかくリンクにしたのにデータが固定になってしまうのを避けたいんです。 フォームだとコンボボックスの更新後処理とレコードの移動にコードをかけば最新の情報を表示することができたんですが、レポートでもこのようなことはできるんでしょうか? (コードをかいて処理したいです) Access2000です。 よろしくお願いします。

  • AccessでBetween条件を含むクエリーで、Between条件を

    AccessでBetween条件を含むクエリーで、Between条件を入力しなくてもデータを抽出するには? Access97でデータの抽出を行いたいと思います。 「顧客名」「商品名」「出荷日」という項目を含むクエリーから、希望のデータを抽出するフォーム(名:検索フォーム)を作成しています。 検索フォームにそれぞれ「顧客名」「商品名」「出荷開始」「出荷終了」という名前の非連結のテキストボックスを作り(規定値を"*"にしています)、それに値を入力すると、これらのテキストボックスの下に配置したサブフォームに抽出されたデータが抽出される様にしたいのです。 現在、クエリーの「顧客名」項目の抽出条件に「[forms]![検索フォーム]![顧客名]」という様に入力し、同じ様な記述を「商品名」項目にも行い(条件は[商品名]としています)、出荷日に「Between[forms]![検索フォーム]![出荷開始]And[forms]![検索フォーム]![出荷終了]」と記述しています。(これらは全てAnd条件にしています) さて、この検索フォームの値入力項目で、全てのテキストボックスに入力しなくても(1つ以上値が入力されていれば)データをサブフォームに抽出できるようにしたいのです。 現在、「出荷開始」&「出荷終了」に値を入力すれば、その他の値(「顧客名」と「商品名」)を入力してもしなくてもデータが抽出できますが、「出荷開始」&「出荷終了」を入力しない限りデータが抽出されません。 この「出荷開始」&「出荷終了」を入力しないケースでもデータが抽出できる様なフォームを作成したいのですが、 どの様に記述を変えたらよいでしょうか?

  • アクセスのフォーム

    アクセスのフォームで、フォーム上にテキストボックスやラベルを配置してありますが、全て画面中央に表示される様にできますか? パソコンのディスプレイの大きさによって真中に配置したつもりが、右側が見えなかったりするので、今は全て画面の一番左に配置してあります。 誰か教えて下さい。よろしくお願いします。

  • Access テキストボックスの移動

    フォーム上に、ラベルとテキストボックスで1セットになっているものがあります。 ラベルにはフィールド名、テキストボックスには実際のデータが表示されています。 フォーム上でテキストボックスだけを移動させたい時は、テキストボックス左上の大きい黒い四角をドラッグすれば可能ですが、これと同じ動きが出来るキーはありますでしょうか? ←や→のキーではラベルまで一緒に動いてしまうので・・・。

  • Access2010についての質問です。

    アクセス「超」初心者です。 あるクエリ上のデータを検索(抽出?)して、フォームに反映させたいのですが、基本的なところで躓いております。 クエリ【Q基本データ】にあるフィールドは [階] [場所] [物] です。 [階][場所]は、別にテーブルがあり、そこから選ぶようになっています。 (→【T階テーブル】【T場所テーブル】) このクエリを基に作成したフォーム【F基本データ】上で、検索を行いたいのです。 フォーム【F基本データ】のヘッダー部分に、 テキストボックスを2つ[階検索][場所検索]と ボタンを1つ[検索] それぞれ配置し検索を行えるようにしたいのですが・・・ (テキストボックスはそれぞれ【T階テーブル】【T場所テーブル】からコンボボックスで選ぶようにしています) [検索]ボタン > プロパティシート > イベント > クリック時 の埋め込みマクロにアクション「フォームを開く」を入力していけば良いのでしょうか??? テキストボックスが2つだとマクロでは無理とか??? テキストボックス1つにつき、ボタンを1つ配置したら良いのか??? ご教授いただけましたら幸いです。

  • アクセスのフォームで簡単入力の仕方

    いつもお世話になっております。当方アクセス初心者です。フォームにテキストボックスを2個配置しました。1個にコードを打ち込むと別のテキストボックスにそれに該当する項目を表示させたいのですがどうすればいいのでしょうか?入力したデータを保存するテーブルが1つ、コードと項目を保持するテーブルが1つ、それぞれ用意しています。よろしくご教示願います。

  • アクセス2000のフォームなんですが。

    本を読みながらアクセス2000で売上管理の入力用フォームを作っていますが解らなくなってしまったので、教えてください。売上管理のクエリを引っぱってきてフォームを作ったところ、わたしのクエリは3つのテーブルをリレーして作ったので金額の演算フィールドに式1[○○テーブル]![単価]*[金額]を入れてます。そうすると、フォームで引っぱってきた金額欄が「式1」となっています。テキストボックスやラベルをどのように使えば直せますか?あとラベルでやろうとするとヒラガナでででくるのですがどうしたら漢字変換に変えられますか?もう、とってもパニクってます。助けてください。あと、レポートの用紙サイズの設定変更もおしえてください。お願いします。

  • アクセスのフォームに簡単入力の仕方(その2)

    以前「フォームにテキストボックスを2個配置しました。1個にコードを打ち込むと別のテキストボックスにそれに該当する項目を表示させたいのですがどうすればいいのでしょうか?入力したデータを保存するテーブルが1つ、コードと項目を保持するテーブルが1つ、それぞれ用意しています。」と質問したところ、コントロールソースにDLookupを入れるようにご教示いただきましたが、テーブルにデータを反映させるには、どうすればよいのでしょうか?いつも申し訳ありませんがご教示願います(涙)

専門家に質問してみよう