都道府県穴埋めゲーム

お世話になります。


条件付き書式で住所が "東京都" で始まるレコードには、その住所だけを赤い文字色にしたいと思います。

フォームをレイアウトビューで開き、「住所」フィールドのテキストボックスを選択します。

ダイアログボックスに 「フィールドの値」・・・・「次の値に等しい」・・・・「Like "東京都*"」 
フォントの色 「赤」 を設定しました。

結果は、駄目でした。

どこが不備なのでしょうか。
よろしくお願いします。

Access 2007  SP-2

 

A 回答 (7件)

テーブルの住所フィールドに



東京
東京都
東京都品川区

と入れて、条件付書式設定で「フィールドの値」を選択し、
次の値に等しいを選択し、値の入力欄に

Like "東京都*"
[住所] Like "東京都*"
"東京都*"
"東京都"

と入れて、どれでエラーが出るか、どれでテキストボックスの
フィールドのデータが赤く表示されるか試してみてください。

フィールドの値とは、数値、文字、文字列などで、
フィールドの値と指定すれば値の入力欄に入力されたものを
「値」としてAccessは認識します。
式と指定すればその式をAccessが分析して書式を設定します。

これらのことはAccessの仕様です。つまり
[住所] Like "東京都*"
は式として認識させなければ思い描く書式は設定されません。
頼むからこれを値として認識してくれ、とAccessにお願いしても
Accessは冷たくそんなものは知らん、と言うだけです。

つまり、「式」、「フィールドの値」の選択と設定する
方法は、テーブルに主キーを設定したら同じキーを
入力できないように、Accessで決められている厳格な
ルールである、ということです。
    • good
    • 0
この回答へのお礼

piroin654 さん、ありがとうございます。

具体的な確認方法で、確認できました。

またよろしくお願いします。

お礼日時:2011/09/03 16:21

条件付き書式にしても、レコードの抽出にしても、条件の設定には


 [住所] = "東京都港区六本木○○-○"
 [住所] Like "東京都*"
といった式を使用しますが、条件付き書式のダイアログでの各選択肢は
この式の各要素に対応しています。

つまり、
 『フィールドの値』が「[住所]」に、
 『次の値に等しい』が「=」に、
 右端の空欄への入力が「"東京都港区六本木○○-○"」に、
それぞれ対応する、ということです。

従って、「Like "東京都*"」としてしまうと、『住所が「Like "東京都*"」
のもの』を指定したことになってしまいます。
(→「[住所] = Like "東京都*"」もしくは「[住所] = 'Like "東京都*"'」)

さらに、「値が等しい」という場合は、上の式でも使用している通り、
通常は「=」を使います。
そのため、仮に右端の空欄を「"東京都*"」と指定したとしても、
実際にAccessが内部で作成する式は「[住所] = "東京都*"」という
形になってしまい、先頭一致の検索条件式([住所] Like "東京都*")
にはなっていませんから、67boyさんが意図したような『住所が「東京都」
で始まるもの』の文字を赤くすることはできない、という結果になります。

  - - - - - - - - - - - - - - -
ちなみに、Excelのオートフィルタでは、このパターンについてもある程度
考慮されていて、オートフィルタの『(オプション)』を選択して表示される
ダイアログで左側の入力欄で「東京都*」、右側で「と等しい」と指定
すると、「東京都」「で始まる」に自動で書き換えられます。

※上で『「等しい」には「=」を使用』といいましたが、実際にはワイルド
 カード文字を指定しないなら、「Like」を使用しても完全一致検索に
 なります。
 http://oshiete.goo.ne.jp/qa/6584303.html
 (No.2参照。なお、回答中、「前方一致」と「後方一致」の式が
  間違って逆に説明していましたので、この場を借りて訂正します(汗))
 なので、Microsoftがこの機能を作成した際に、「次の値に等しい」
 を選択したときの演算子を「=」ではなく「Like」にしてくれていたら、
 『フィールドの値』+『次の値に等しい』+『"東京都*"』
 (→「[住所] Like "東京都*"」)
 として、ご希望通りの動作になったのではないか、と思ってしまいます(汗)
    • good
    • 0
この回答へのお礼

DexMachina さん、ありがとうございます。

丁寧な説明、本当に恐縮です。

またよろしくお願いします。

お礼日時:2011/09/03 16:25

何故と言われても


>[住所] Like "東京都*"
がLike 演算子 を使った『式』だからです。
上記の場合は、True か False が返ってきますよね。
1 = 2
と同様に考えてみては?
    • good
    • 0
この回答へのお礼

nicotinism さん、ありがとうございます。


住所テキストボックスだけを選択して、
「式」・・・・「[住所] Like "東京都*"」   フォント「赤」

この方法で、確かにうまく設定できました。
条件を付けるフィールドと、書式を設定するフィールドが同じなので、「式」ではなく、「フィールドの値」を使えるものと考えました。

よろしくお願いします。

お礼日時:2011/09/02 19:05

説明不足を補うために。



[住所] Like "東京都*

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

ついでに。


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

質問は「フィールドの値」で設定したけどだめだった、でしたね。


そのところを読み飛ばしていたつもりではありませんが、
「式」で設定、という一言をいれるのを忘れていました。

>住所テキストボックスだけを選択して、
>「式」・・・・「[住所] Like "東京都*"」   フォント「赤」
>この方法では、希望した形すなわち住所フィールドの実が赤文字になりました。

私はこのつもりで、[住所] Like "東京都*" と回答したのですが、
説明不足でした。


「フィールドの値」と「式」の使い分けは以下にあります。

http://office.microsoft.com/ja-jp/access-help/HA …

なんだか説明を端折ってしまいましたが、上記を見たほうが
分かりやすいかと。(最近説明のしかたが、どうもずれ勝ちなので)
    • good
    • 0
この回答へのお礼

piroin654 さん、ありがとうございます。

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

お礼日時:2011/09/02 18:53

[住所] Like "東京都*"



で、どうですか。
    • good
    • 0
この回答へのお礼

piroin654 さん、ありがとうございます。

結果は、うまくいきませんでした。

ただし、フォームの全テキストボックスを選択して、
「式」・・・・「[住所] Like "東京都*"」   フォント「赤」
上記では該当レコードが、全て赤文字に変わりました。

また、住所テキストボックスだけを選択して、
「式」・・・・「[住所] Like "東京都*"」   フォント「赤」
この方法では、希望した形すなわち住所フィールドの実が赤文字になりました。

「式」ではなく、「フィールドの値」 では、どうしてうまくいかないのでしょうか。

ご面倒なことをお願いして申し訳ございません。
よろしくお願いします。

お礼日時:2011/09/02 00:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A