牛、豚、鶏、どれか一つ食べられなくなるとしたら?

Access 2007 クエリのあいまい検索について

特定の文字を含むデータ以外を表示させたいと考えています。

下記の文字を含むデータ以外を表示させたい場合
どのように抽出条件を入れればいいでしょうか。

<抽出条件>
担当者もしくは空欄を含むデータ以外を表示

※「担当者」という文字列です。

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

A 回答 (8件)

抽出条件ではなくクエリの新しいフィールドに、



IIf(Not IsNull([住所]),funcIsHirakana([住所]))

とし、抽出条件を

False

です。表示はチェックをいれません。
それこそ「あいまい」でした。
以上です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。ご回答頂きました内容をもとにいろいろ試したいと思います。

お礼日時:2010/07/12 23:05

論点が変わっている?。




クエリで「出力対象フラグ」でも作って、担当者文字有無、空欄か否か、ひらがな含むか、アルファベット含むか否か、考えられる判定結果をVBAで求めTRUEやFALSEを返す、で良い。

クエリ側で、この4つの存在判定をそれぞれ組み合わせでみていくのはできなくはないがー、LikeやNOT多発でケース漏れそうでわかりにくい。判定はVBA側に1つに固めて記載した方が良いかと。例えばー、4つなら1111ならすべてダメ、0111なら1つめ条件だけOK、0000ならすべてOK等こんな判定もできる。

条件増減の修正にも耐えるように。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。VBAも勉強したいと思います。

お礼日時:2010/07/12 23:06

失礼しました。

抽出条件を

IIf(Not IsNull([名前]),funcIsHirakana([名前]))

としてください。空欄があるとそのままでは
エラーになります。
    • good
    • 0

ひらかなが含まれているとTrueを返す関数です。



以下の関数を標準モジュールに貼り付け保存します。

'ひらかなが含まれていたらTrueを返します
Function funcIsHirakana(strMojiretu As String) As Boolean
If Len(strMojiretu) = 0 Then
Exit Function
End If

Select Case Asc(Mid$(strMojiretu, 1))
Case -32096 To -32015
funcIsHirakana = True
End Select
End Function


使い方は、フィルターをかけるフィールドを[名前]とすると、
クエリの新しいフィールドに、

funcIsHirakana([名前])

とし、その抽出条件に

False

といれます。これで名前のフィールドにひらかなが
含まれるレコードは表示されません。
    • good
    • 0

アルファベットについては、


Not Like '*[A-Z]*'
でいいと思いますが、ひらがな
については関数を作る必要が
あります。たとえば、
http://www.vbalab.net/vbaqa/data/access/log/tree …
にあるような関数を少し変更して
ひらがなを含む文字列を取り出す
関数に変更します。アスキーコード
でひらがなを区別します。他のサイト
にも関連情報があります。
http://www.accessclub.jp/bbs2/0048/beginter15717 …
時間があれば、作成して検証しますが。
    • good
    • 0

クエリデザインでLikeを使っての抽出を学習して下さい。



文字「担当者」を含む、空欄を含む、この判断の裏返しです。ある文字を含むレコードだったら1、以外は0と別途判断項目を準備する。0を抽出します。判断結果がより明確になります。

WHEREに書くときANDとORを間違えないように。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/07/12 23:04

#1です。

クエリの抽出条件に直接
書く場合です。

この回答への補足

ご回答ありがとうございます。最後に質問させてください。
ひらがなとアルファベットの文字列については、データに抽出しないということも可能でしょうか。

補足日時:2010/07/12 12:24
    • good
    • 0

Not Like "*" & "担当者" & "*" AND Not Is Null

    • good
    • 0

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