限定しりとり

長くなりますがお付き合いいただければ幸いです。

T名簿(テーブル)
名前  ふりがな    所属(フィールド)
佐藤武  さとうたけし     B社
田中太郎  たなかたろう     A社
******************************************************
F名簿(フォーム)
名前テキスト
所属テキスト
を配置しています。
******************************************************
名前も所属もNull値でも検索できるようにしたいので

SELECT T名簿.名前, T名簿.ふりがな, T名簿.所属
FROM T名簿
WHERE (((T名簿.名前) Like "*" & [Forms]![T名簿]![名前テキスト] & "*") AND ((T名簿.所属) Like "*" & [Forms]![T名簿]![所属テキスト] & "*"));

としました。

このクエリなら
F名簿の名前テキストに「佐藤武」と入力したら、佐藤武のレコードが表示されます。

さらに
F名簿の名前テキストに「さとうたけし」と入力しても
佐藤武のレコードが表示できるようにしたいのですがどうすればいいでしょうか?

「漢字とふりがなで抽出できるようにしたい」の質問画像

A 回答 (1件)

((T名簿.名前) Like "*" & [Forms]![T名簿]![名前テキスト] & "*")



部分を

(((T名簿.名前) Like "*" & [Forms]![T名簿]![名前テキスト] & "*")
OR
((T名簿.ふりがな) Like "*" & [Forms]![T名簿]![名前テキスト] & "*"))

としてみてどうなりますか。


全体的にみると

A AND B

で、

A 部分が上記、B 部分が
((T名簿.所属) Like "*" & [Forms]![T名簿]![所属テキスト] & "*")


書き方を IIF を使ったものに書き換えてみると、

IIF(IsNull([Forms]![T名簿]![名前テキスト]),
True,
(T名簿.名前 Like "*" & [Forms]![T名簿]![名前テキスト] & "*")
OR
(T名簿.ふりがな Like "*" & [Forms]![T名簿]![名前テキスト] & "*")
)
AND
IIF(IsNull([Forms]![T名簿]![所属テキスト]),
True,
T名簿.所属 Like "*" & [Forms]![T名簿]![所属テキスト] & "*"
)

※ 各フォーム上のテキストボックスが Null だったら無条件で True を、
  Null じゃなかったら抽出条件を記述します。

※ 未検証
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/11/30 21:05

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