• ベストアンサー

こんなことがフォーム上で表示できますか?

フォーム(既定のビュー:帳票フォーム)詳細に、クエリで表示させた現在のtxt生産台数とtxt予定台数を比較して、テキストボックス(非連結)に「完了」や「生産中」と表示させたいと考えております。 はじめはテキストボックスではなく、ラベルの可視プロパティをVBAで制御を試みましたが、比較がうまく機能していなくて・・・ いろいろとチャレンジしましたが、くじけております。 ヒントなどいただけたらよろしくお願いします。 環境:WinXp Pro、Access2002

質問者が選んだベストアンサー

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

「txt生産台数」と「txt予定台数」のデータ型がともに数値型なのでしたら、 =IIF(txt生産台数-txt予定台数<0,"生産中","完了") 数値型ではないのでしたら、 =IIF(CLng(txt生産台数)-CLng(txt予定台数)<0,"生産中","完了") という式を、表示させたいテキストボックスのコントロールソースに 設定してやればどうにかなるのではないかと思います。 (先頭の「=」も含めて必要です)  *関数CLngは、数字テキストを長整数型に変換します。但し小数は   丸めてしまうので、小数が必要な場合はCSngかCDblという関数   を使って下さい(使い方は同じです)。 但し、式をコントロールソースとするコントロール(=演算コントロール)は、 フォームの右クリックメニュー等による検索・並べ替えはできません。 ですので、No.1の方も勧められているように、同様の式をクエリで使用して、 演算フィールドにするなどした方が、使い勝手はいいかもしれません。

39_Thanx
質問者

お礼

ご回答ありがとうございます。 とりあえず希望通りの結果が得られました。 同じ内容がクエリで実現できるように挑戦してみます。

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>クエリでチャレンジしましたが、挫折しました。 挫折するほど難しいことじゃないと思いますが 生産台数が予定台数未満なら生産中でいいいのですね =IIF(生産台数<予定台数,"生産中","完了") という式フィールドを作るだけです

39_Thanx
質問者

お礼

ありがとうございます。クエリでも実現できました。 次にチャレンジしているのはクエリで得た結果の”生産中”と”完了”のフォントの色を変えるように挑戦しています。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

帳票フォームの非連結テキストボックスに 何らかの値をセットすると全てのレコードに同じものが表示されてしまいますよ フォームで何とかするのではなくクエリの式フィールドで行いそれをフォームのソースにすればいいのでは

39_Thanx
質問者

お礼

ご回答ありがとうございます。 仰るとおり、全てのレコードに同じものが表示されました。 クエリでチャレンジしましたが、挫折しました。

関連するQ&A

  • Accessのフォームの書式設定

    売上のテーブル(売上テーブル)を元にクエリ(売上クエリ)を作りました。そしてその売上クエリを元にフォーム(売上フォーム)を作りました。オートフォーム(単票形式)で作ったのですが、フォームビューからデザインビューへ切り替えました。「ラベル」(ID、商品名、価格)と「テキストボックス」(ID、商品名、価格)が表示されています。「ラベル」も「テキストボックス」に表示されている名前の文字(ID、商品名、価格))は全て左揃えで表示されているのに、実際にフォームビューでは「価格」の数値の表示は右揃えされています。これはどうしてでしょうか?数値はエクセルなどと同じで右揃えされるのでしょうか? その後、デザインビューへ切り替えて「テキストボックス」の「価格」を中央揃えにしてフォームビューに切り替えてると中央揃えにはなっていました。オートフォームで作ったすぐの状態では、デザインビューではテキストボックスの表示されている文字は全て左揃えになるがフォームビューでは数値は右揃えになるのでしょうか? 教えてください。

  • access クエリ 検索フォームの作り方

    よろしくお願いします。 やりたいこと: フォーム上で、テキストボックスに入力した値を検索して表示したい。 本やウェブで調べて、なんとか一度はやっと出来たのですが、 誤って何かを変更してしまい、使えなくなってしまいました。 今となってはどの資料を見て作れたのかわからなくなりました。 やったこと: クエリ :クエリA   条件にforms!フォームA!txt0を入力 フォーム:フォームA ヘッダーに非連結のテキストボックスtxt0を作成 txt0の更新後処理:docmd.requeryを入力 しかし、txt0に入力しても検索されません。 フォームのプロパティのレコードソース欄にクエリAを選択するようですが、 選択するクエリ名が表示されないので、クエリ名を入力しましたがダメでした。 どこか間違っているのでしょうか。VBAまでは勉強できないので上記範囲内でお願いします!

  • [Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには

    Accessにおいて。 帳票フォームの"詳細"に非連結のコントロール(例:テキストボックス)を配置し、それぞれ別々の値を持たせることは可能なのでしょうか? 例えば。 VBAにおいて、カレントレコードのAという値とBという値を計算し、その値を非連結のテキストボックスに挿入したとします。 単票フォームであれば、問題なくテキストボックスには計算後の値が表示されるわけですが…… 帳票フォームの場合では、"規定値"に計算式を入れたときと同様、先頭の値と同じものが連続するテキストボックスに表示されてしまいます。 これを回避し、計算後のデータを連続するテキストボックスにそれぞれの値として表示させるには、どのようにすればよいのでしょうか? もちろん、連結させたコントロールを使用すれば、問題はないのですが…… 状況によっては、これが行えた方が便利かと思い、質問させていただきます。 「帳票フォームでは不可能である」といった回答でもかまいません。 どうぞよろしくお願いいたします。

  • フォームに表示したいんですが・・・

    複数の人数の作業時間を入力するフォームを作成しました。 誤って入力したものをフォーム上で訂正したいので非連結のテキストボックスを 2つ作成しクエリーの「作業日」と「社員番号」のフィールドの抽出条件をforms![フォーム名]![テキストボックス名]としました。 フォームの2つのテキストボックスに「日付」と「社員番号」を入力すると1レコードが表示されました。 間違いを探すのに1日1日入力するのは手間なので、例えばAさんの1年分の レコードから1月1日から1月31までの31レコードをフォームに表示させるにはどうすればよいのでしょうか? いろいろやってみたんですがうまく出来ませんでした。 うまく説明できませんがよろしくお願いいたします。

  • vbaで列を非表示にする方法はありますか?(フォームのデータシートビュー)

    手動でちまちま「列を表示しない」をすると稼動がかかるので VBAで列を非表示にしたり、表示したりしたいのですがどうすればいいのでしょうか? フォームのデザインビューでテキストボックスのプロパティの可視を「いいえ」にして フォームを開いても列が表示されてしまいます。 ご存知の方がいらっしゃいましたら、教えてください。

  • Accessのフォームについて

    ラベルのみの削除はできますが、フォームで作成されるテキストボックスのみを削除することはできるのでしょうか?テキストボックスを削除するとどうしても連結されているラベルも削除されてしまいます。 ご存知の方教えていただけますでしょうか<m(__)m>

  • テキストボックスに文字を表示したい

    フォームに設置した非連結のテキストボックスに値を表示したいです。 アクセス2007です。 フォームのデザインビューで テキストボックスのコントロールソースに「あ」と入力してF5でフォームビューにすると 「#Name?」になってしまいます。 フォームビューでも「あ」と表示させるためには どうすればいいでしょうか? ご教授よろしくお願いします。

  • アクセスのフォームについて

    アクセスのフォームについて2件質問させてください。 その1 クエリーからあるフォームを作っていますが、元になるクエリー(テーブルにも)には項目がなく、ただそのフォームに表示されればいいというデータをそのフォーム上で入力したいのです。 そこで非連結でテキストボックスを作ったのですが、1ヶ所に入力するとどのページにも同じデータが表示されています。 それぞれのページに違うデータをフォームから直接入力するにはどのようにしたらいいでしょうか? その2 大変むずかしい依頼がきて悩んでいます。 フォームでラベルや図形で1ヶ月を3等分した簡単な図を作り、 フォーム上のある日付をその図の中に●や▲で表示したいのです。 イメージは下のような感じですが、このようなことは可能でしょうか?      2002/3       2002/4           ┃  │   │  ┃  │ ● │  ┃   以上2件一緒にして申し訳ございませんが、ご存知の方がいらっしゃいましたらよろしくお願いします。

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。

  • フォーム上の入力更新値を既定値にしたい

    最近アクセスを始めましたが、わからないことが多くて皆様のお知恵よろしくお願いします。 現在、フォームにデータ入力やレポート用のクエリ抽出要件用とレポート表示用として、非連結のテキストボックスを多数設置して利用していますが、一度入力した要件は、しばらくは同じ値で作業します。 よって、入力した要件データが次回もそのまま表示されるようにしたいのですが、たとえば日付入力テキストで、VBAのafterupdate で以下の設定をすると、一旦はデザインビューのプロパティの既定値が更新内容に変わっているのですが、終了・再立ち上げを行うと元の既定値に戻ってしまいます。 Private Sub 日付_AfterUpdate() Me!日付.DefaultValue = "#" & Me!日付 & "#" End Sub なお、入力後にフォームのデザイン等を一部変更・または直接プロパティで既定値変更した場合は、「フォームの変更を保存しますか?」の表示がでて、「はい」クリックするとフォームデザインとともに上記更新日付等も既定値が更新され、再立ち上げ時にも更新値が表示されます。 よって、フォームビューからの入力テキストの更新だけでは、見た目こそプロパティの既定値が更新されていますが、実際にはフォームの更新と認識されず、保存動作が行われていないようです。 更新ボタンをクリックしてからの終了や、close acSaveYes 等の設定してみても効果はないです。 フォームビューからの入力だけで、既定値更新の内容が保存できる方法があれば、よろしくお願いします。