• ベストアンサー

ACCESSでフラグによる文字表示

ACCESSでクエリを使って読み込んだデータの持っているフラグによって テキストボックスの表示を変えたいのですがどうしたらいいのでしょうか。 例えば、フラグ=1の時はテキストボックスに「有」と表示・・・というような 感じです。 プロパティで条件付できないのでしょうか。 それとも、リストボックスを使った方がいいのでしょうか。 教えてください。 宜しくお願いします。

  • sprit
  • お礼率66% (45/68)

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

  • ベストアンサー
noname#140971
noname#140971
回答No.2

テーブル tab1: ID__区分 _1_____1 _2_____2 フォーム tab1: [ID]______[1] 区分______[________有[v]] <-- コンボボックス 区分______[有___________] <-- テキストボックス コンボボックス: 区分 値集合タイプ_________値リスト 値集合ソース_________1;有;2;無 列数_________________2 列幅_________________0cm;2cm テキストボックス: 区分表示 名前_________________区分表示 コントロールソース___=CutStr("有/無","/",[区分]) テキストボックスを利用する場合は、列[区分]は非表示にします。 CurStr関数はAccessでは提供されていませんので標準モジュールに登録します。 Public Function CutStr(ByVal Text As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs((N <= UBound(strDatas)))) End Function [イミディエイト] ? CutStr("有/無/その他", "/", 1) 有 ? CutStr("有/無/その他", "/", 2) 無 ? CutStr("有/無/その他", "/", 3) その他 IIF関数で[区分表示]を生成しても構わないでしょうが、翻訳が3つ以上の場合はCutStr関数が楽。

sprit
質問者

お礼

今回は選択肢が2つ以上だったのでIIF関数を使いましたが、 3つ以上の場合もあるので、とても参考になりました。 ありがとうございました。

その他の回答 (1)

回答No.1

クエリで取って来るときに「IIf関数」で変更してしまうのが一番てっとり早いです。 iif(フラグ=1,"有","") みたいな感じで。

sprit
質問者

お礼

教えていただいた方法で解決できました。 ありがとうございました。

関連するQ&A

  • アクセス(ACCESS)のリストボックスについて

    アクセスでフォームにテキストボックスとリストボックスを配置して、 テキストボックスに入力した文字列により、リストボックスに表示される データを変えたいのですが(フィルタをかけるというのでしょうか??) そこで、vbaを用い、リストボックスのプロパティの値集合ソースに SELECT * FROM aaa where aaa.bbb like "*あ*"; 'あ と言う文字のあいまい検索のつもり ”あ”はテキストボックス    に入力されている。 と入るような事を考えたのですが、ここで、aaaの部分がテーブルを基にした 場合は、該当するデータすべてが表示されますが、クエリーを基にすると 先頭のデータしか表示しないのです。 たぶん、素人の考えなのでしょうが、どうしてそうなるのかが分かりません。 教えていただけないでしょうか? できたら、クエリーを基にしても、該当データが表示できる方法も 教えてください。お願いします。 VBAは(?)かなりの初心者です。上記の方法も本に書いてあった物を やっと流用しました。猿にも解るくらいでお願いします。 ちなみに、アクセスは2000を使用しています。

  • ACCESSのリストボックスの文字色について

    クエリで作成したデータをリストボックスで表示していますが、条件により一行の文字色を変えることが可能でしょうか? 例えば、リストボックスの表示項目がお客様名、工事進捗状況、・・・・とすると工事進捗状況が完成であれば一行の文字色を黒、未完了であれば赤色というように変えれないかと思っています。 表示するデータを表形式で作成すれば条件付書式の設定で可能とは思いますが、訳あってリストボックスで表示しています。 ご指導よろしくお願いいたします。 なお、作成環境は以下の通りです。  OS:WindowsXP  ACCESS:2003

  • accessでフラグたて

    Accessでアンケートデータを入力して 複数回答可の所を「1,2,3,5,6」と入力しているのですが 使うときには、各回答数値項目にフラグを立てるのですが、 どうしたらできるのかわかりません(^_^;) きっとクエリでやるのだろうと当りはつけてみたのですが うまくいかないので分る方教えてください(*^_^*) よろしくお願いします\(◎o◎)/

  • ACCESSでフォームを作ってるのですが

    宜しくお願いします。 ACCESSのフォームでクエリのフィールドを テキストボックスに表示させたいのですが、 テキストボックスのプロパティのどこを いじればよいのでしょうか? 教えてください。

  • アクセスでのリスト表示について。

    アクセス初心者です。フォームのコンボボックスにテキストボックスをつけて、コンボボックスには担当者コードテキストボックスには=cmb_担当者.column(1)等と書いて、担当者名をcolumnで表示するのは可能ですよね。リストボックスの中で一覧表を作成したのですが、今は数値ばかりが見えていて、訳が分かりません。テーブルへのデータはほとんど数値で入っていくようにしています。columnが使えたら、テキストでも表示されるので見やすくなると思うのですが、クエリでのcolumnの作成は可能なのでしょうか?

  • Accessのプロパティについて

    ExcelからAccessへデータをインポートしてテーブルを作り、フィールドの[データ型]を[テキスト型]から[数値型]へ変更しようとすると、保存時に「レコードが大きすぎる」と弾かれてしまいます。仕方がないのでフォーム上でテキストボックスのプロパティで書式を変更しようとすると、コンボボックスのリストが表示されないため変更できません。これはやはりレコードが大きすぎるためなのでしょうか?また、その解決法を教えていただきたいのですが…。あまりAccessは詳しい方ではないので分かりやすく御願いします。

  • ACCESSの条件付書式

    アクセスのデータシートビューで条件付書式ができるのは フォームをデータシートビューで表示したときだけでしょうか? テーブルやクエリでは ツールバーに「書式→条件付書式」は表示されませんが フォームのデータシートビューを開いている時のみ、 「書式→条件付書式」が表示されます。 テーブルやクエリでも条件付書式を設定できる方法があれば教えてください。 よろしくお願いします。

  • Accessであいまい検索するフォームをつくってみたんですが?

    Accessの初心者です。 本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。 クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど) フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか? よろしくお願いします。

  • ACCESS クエリ テキスト入力後データ表示

    ACCESS クエリ テキスト入力後データを表示させたい 基本的な事ですが教えてください。 Access2010でクエリを作成しています。 データはexcelからリンクしています。 Excelデータは、A~F列、1~300行(1行目は項目行)あるとします。 データのリンクは問題なしでした。 A列には4~7桁の数字が入っており、重複はありません。 作成しているクエリは、A列にある番号をテキストボックスで手入力し、それと一致した行のデータB~F列を表示させる、というものです。 今までデータが少なかったのでA列をリストボックス、もしくはコンボボックスにしてB~F列を表示させていました。この方法はわかります。 しかし今回300行と多いのでテキストボックスに手入力し、一致した行のデータB~F列を表示させることが初めてで設定方法がわかりません。本もリストボックス、もしくはコンボボックスからの検索ばかりで載っていません。 初期的な質問かと思いますが、どうかできるだけ簡単な言葉で教えてくださいませんでしょうか? 宜しくお願い致します。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。