• ベストアンサー

Accessのフォームで、当該データ以外のレコードを検索したい。

Accessの自己流で使っているものです。 販売管理のデータベースを作ったのですが、 主なフィールドは、 仕入先、商品名、販売日、担当者、販売方法などです。 担当者、販売方法でフィルタをかけ、他の項目を入力の作業をしたい状況です。 そこでですが、フィルタのかける条件として、 担当者=山田、販売方法=A、B以外のもの、というかけ方をしたいのですが、 その設定の方法がわかりません。 試した例では、 [担当者]=[Forms]![販売管理]![検索_担当者] or [販売方法]=not "A" or [販売方法]=not "B" でやりましたが、できませんでした。 AとBをの抽出は、以下でできました。 [販売方法]="A" Or [販売方法]="B" ただ、A,B以外の抽出方法が分からず、さらに当該担当者を加えてのやり方もわかりません。 どうすればできるのか、宜しくお願いいたします。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.1

ウーン1! どういう種類のテーブルなのか????? 仕入伝票でもなし、商品マスターでもなし・・・。 ウーン2! 抽出条件とフォームの入力フィールドが同じ! それじゃユーザは操作に困るだろうに! ということで、最低、フォームヘッダーに [担当者一覧][販売方法一覧]が配置されているとして・・・。 ウーン3! >担当者、販売方法でフィルタをかけ、他の項目を入力とは? 新規レコードの担当者、販売方法の初期値を設定するという意味? それとも、未入力レコードを予め発生させておくつもり? 後者は、ないだろう! 不具合レコードをどんどん発生させることになる・・・。 と、ここまで書いて回答は保留することにしました。 回答しても、どうせ・・・と思います。 *ウーン3つを解消するのが先決かもです!

その他の回答 (3)

noname#79209
noname#79209
回答No.4

もう少し、論理演算の勉強をなさることをお勧めします。 まず論理テーブルを書いてみることです。 P  Q   P Or Q ○  ○   ○ ○  ×   ○ ×  ○   ○ ×  ×   × P  Q   P And Q ○  ○   ○ ○  ×   × ×  ○   × ×  ×   × 要素が「山田」「A」「B」と3つあるので、組み合わせは2の3乗=8通りです。   山田 A  B  質問文の条件式(全てORで連結)での結果 1. ○  ○  ○  該当  山田が○だから、ABの値はどうでもいい 2. ○  ○  ×  該当  山田が○だから、ABの値はどうでもいい 3. ○  ×  ○  該当  山田が○だから、ABの値はどうでもいい 4. ○  ×  ×  該当  山田が○だから、ABの値はどうでもいい 5. ×  ○  ○  非該当 山田が×、AB共に○だから条件に当てはまらない 6. ×  ○  ×  該当  山田が×だが、Bが×だから 7. ×  ×  ○  該当  山田が×だが、Aが×だから 8. ×  ×  ×  該当  山田が×だが、AB共に×だから となり、質問者さんの条件式では「5」以外の全てに該当してしまいます。 ここで、質問者さんが得たい検索結果は「4」の場合ですから (担当者=山田) And (販売方法 <>A) And (販売方法 <>B)と 全てANDでつながなければなりません。

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

> 担当者=山田、販売方法=A、B以外のもの これは、「担当者が山田で、販売方法がAでもなくBでもないもの」 という意味でよろしいでしょうか。 でしたら、No.2の方の回答にもある通り、「Or」ではなく「And」で 結合させる、つまり、 [担当者]=[Forms]![販売管理]![検索_担当者] And [販売方法]<> "A" And [販売方法]<> "B" としてやる必要があります。 (又は、「<>」を「= Not」で置き換えるか、以下の式でも可;  [担当者]=[Forms]![販売管理]![検索_担当者] And Not [販売方法]="A" And Not [販売方法]="B"  通常は「<>」を使うのではないかと思います。  但し、私も自己流なので、両者が完全に互換なのかは  わかりませんが・・・) なお、Accessのフォームビューで、連結コントロール(=レコード データが表示される、テキストボックス等のコントロール)を 右クリックすると、表示されるメニューに、「フィルタの対象(F)」 という選択肢が現れると思います。 その右の入力欄に検索条件(「Not A」等)を入れて絞り込みを 実行した後、フォームのプロパティシートで「データ」タブを 選択すると、「フィルタ」欄に現在のフィルタ式が表示されます。 私は、この方法を使ってフィルタ式の概要を覚えましたので、 参考までに。

回答No.2

試した例では、 [担当者]=[Forms]![販売管理]![検索_担当者] or [販売方法]=not "A" or [販売方法]=not "B" ↑て、クエリに設定してますよね? [担当者]=[Forms]![販売管理]![検索_担当者] はいいとして、 [販売方法]=<>"A" and <>"B" で実現しませんか?

関連するQ&A