• ベストアンサー

Access 条件付き書式

お世話になります。 条件付き書式で住所が "東京都" で始まるレコードには、その住所だけを赤い文字色にしたいと思います。 フォームをレイアウトビューで開き、「住所」フィールドのテキストボックスを選択します。 ダイアログボックスに 「フィールドの値」・・・・「次の値に等しい」・・・・「Like "東京都*"」  フォントの色 「赤」 を設定しました。 結果は、駄目でした。 どこが不備なのでしょうか。 よろしくお願いします。 Access 2007  SP-2  

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

テーブルの住所フィールドに 東京 東京都 東京都品川区 と入れて、条件付書式設定で「フィールドの値」を選択し、 次の値に等しいを選択し、値の入力欄に Like "東京都*" [住所] Like "東京都*" "東京都*" "東京都" と入れて、どれでエラーが出るか、どれでテキストボックスの フィールドのデータが赤く表示されるか試してみてください。 フィールドの値とは、数値、文字、文字列などで、 フィールドの値と指定すれば値の入力欄に入力されたものを 「値」としてAccessは認識します。 式と指定すればその式をAccessが分析して書式を設定します。 これらのことはAccessの仕様です。つまり [住所] Like "東京都*" は式として認識させなければ思い描く書式は設定されません。 頼むからこれを値として認識してくれ、とAccessにお願いしても Accessは冷たくそんなものは知らん、と言うだけです。 つまり、「式」、「フィールドの値」の選択と設定する 方法は、テーブルに主キーを設定したら同じキーを 入力できないように、Accessで決められている厳格な ルールである、ということです。

67boy
質問者

お礼

piroin654 さん、ありがとうございます。 具体的な確認方法で、確認できました。 またよろしくお願いします。

その他の回答 (6)

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

条件付き書式にしても、レコードの抽出にしても、条件の設定には  [住所] = "東京都港区六本木○○-○"  [住所] Like "東京都*" といった式を使用しますが、条件付き書式のダイアログでの各選択肢は この式の各要素に対応しています。 つまり、  『フィールドの値』が「[住所]」に、  『次の値に等しい』が「=」に、  右端の空欄への入力が「"東京都港区六本木○○-○"」に、 それぞれ対応する、ということです。 従って、「Like "東京都*"」としてしまうと、『住所が「Like "東京都*"」 のもの』を指定したことになってしまいます。 (→「[住所] = Like "東京都*"」もしくは「[住所] = 'Like "東京都*"'」) さらに、「値が等しい」という場合は、上の式でも使用している通り、 通常は「=」を使います。 そのため、仮に右端の空欄を「"東京都*"」と指定したとしても、 実際にAccessが内部で作成する式は「[住所] = "東京都*"」という 形になってしまい、先頭一致の検索条件式([住所] Like "東京都*") にはなっていませんから、67boyさんが意図したような『住所が「東京都」 で始まるもの』の文字を赤くすることはできない、という結果になります。   - - - - - - - - - - - - - - - ちなみに、Excelのオートフィルタでは、このパターンについてもある程度 考慮されていて、オートフィルタの『(オプション)』を選択して表示される ダイアログで左側の入力欄で「東京都*」、右側で「と等しい」と指定 すると、「東京都」「で始まる」に自動で書き換えられます。 ※上で『「等しい」には「=」を使用』といいましたが、実際にはワイルド  カード文字を指定しないなら、「Like」を使用しても完全一致検索に  なります。  http://okwave.jp/qa/q6584303.html  (No.2参照。なお、回答中、「前方一致」と「後方一致」の式が   間違って逆に説明していましたので、この場を借りて訂正します(汗))  なので、Microsoftがこの機能を作成した際に、「次の値に等しい」  を選択したときの演算子を「=」ではなく「Like」にしてくれていたら、  『フィールドの値』+『次の値に等しい』+『"東京都*"』  (→「[住所] Like "東京都*"」)  として、ご希望通りの動作になったのではないか、と思ってしまいます(汗)

67boy
質問者

お礼

DexMachina さん、ありがとうございます。 丁寧な説明、本当に恐縮です。 またよろしくお願いします。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.5

何故と言われても >[住所] Like "東京都*" がLike 演算子 を使った『式』だからです。 上記の場合は、True か False が返ってきますよね。 1 = 2 と同様に考えてみては?

67boy
質問者

お礼

nicotinism さん、ありがとうございます。 住所テキストボックスだけを選択して、 「式」・・・・「[住所] Like "東京都*"」   フォント「赤」 この方法で、確かにうまく設定できました。 条件を付けるフィールドと、書式を設定するフィールドが同じなので、「式」ではなく、「フィールドの値」を使えるものと考えました。 よろしくお願いします。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

説明不足を補うために。 [住所] Like "東京都* の[住所] はあくまでもフォームのレコードソースに なっているテーブル、あるいはクエリのフィールドの 名前です。試しにもしテーブルのフィールド名と フォームのテキストボックスの名前が両方たとえば 「住所」という名前ならば、フォームのテキストボックスの 名前をtxt住所にしてみてください。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

ついでに。 条件付き書式はVBAで設定する方法もあります。 無理難題はVBAでする手段を用いれば解決 出来る場合もあります。(あくまでも可能性です)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

質問は「フィールドの値」で設定したけどだめだった、でしたね。 そのところを読み飛ばしていたつもりではありませんが、 「式」で設定、という一言をいれるのを忘れていました。 >住所テキストボックスだけを選択して、 >「式」・・・・「[住所] Like "東京都*"」   フォント「赤」 >この方法では、希望した形すなわち住所フィールドの実が赤文字になりました。 私はこのつもりで、[住所] Like "東京都*" と回答したのですが、 説明不足でした。 「フィールドの値」と「式」の使い分けは以下にあります。 http://office.microsoft.com/ja-jp/access-help/HA010208133.aspx なんだか説明を端折ってしまいましたが、上記を見たほうが 分かりやすいかと。(最近説明のしかたが、どうもずれ勝ちなので)

67boy
質問者

お礼

piroin654 さん、ありがとうございます。 参考Webの紹介ありがとうございます。 今回の例は、この中にある「式」が必要な4項目には該当していないと考えます。 すなわち「フィールドの値」が使えるものと思います(勝手ですが)。 もう少し考えてみます。 何かありましたらよろしくお願いします。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

[住所] Like "東京都*" で、どうですか。

67boy
質問者

お礼

piroin654 さん、ありがとうございます。 結果は、うまくいきませんでした。 ただし、フォームの全テキストボックスを選択して、 「式」・・・・「[住所] Like "東京都*"」   フォント「赤」 上記では該当レコードが、全て赤文字に変わりました。 また、住所テキストボックスだけを選択して、 「式」・・・・「[住所] Like "東京都*"」   フォント「赤」 この方法では、希望した形すなわち住所フィールドの実が赤文字になりました。 「式」ではなく、「フィールドの値」 では、どうしてうまくいかないのでしょうか。 ご面倒なことをお願いして申し訳ございません。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう