• ベストアンサー

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

  • Accessのフォームで、空欄のレコードを検索したい。

    Accessの自己流で使っているものです。 販売管理のデータベースを作ったのですが、 主なフィールドは、 仕入先、商品名、販売日などです。 そこでですが、 コマンドボタンで販売日が未入力のものを検索しようとしましたが、抽出ができません。 仕入先では検索ができました。 検索コマンドボタンと、仕入先抽出のテキストボックスを作り、 検索コマンドボタンのクリック時のマクロビルダで、 [仕入先]=[Forms]![販売フォーム]![仕入先抽出]   [仕入先]  テーブルのフィールド名   [販売フォーム] フォーム名   [仕入先抽出] 抽出したい仕入先を入力するテキストボックス そこで販売日についても抽出を掛けたく思い、 同様に、販売日検索未入力コマンドボタンを作り、 コマンドボタンのクリック時のマクロビルダで、 [販売日] like "is null" [販売日] like is null などやってみましたができませんでした。 少ない情報で申し訳ありませんが、補足情報は随時いれますので宜しくお願いいたします。

  • Accessのフォーム上で、フィルタをかけたい。

    商品管理フォームをつくってます。accessは自己流です。 主なテーブル構成は、決済日、仕入先、仕入金額などです。 ここでのフォームのフィールドは、クエリをかけグループ化し、仕入金額は、合計としてます。 そこでですが、2種類のフィルタのかける方法をしたいです。 1つは、決済日ごとにフィルタをかけ小計を出すことです。 例えば決済日が8月10日でフィルタをかけ、仕入先ごとの支払合計金額をだす。 2つめは、決済日が8月10で仕入先をさらにフィルタをかけ支払合計金額をだすことです。 例えば決済日が8月10日で、仕入先が”A”でフィルタをかけ、8月10日の仕入先Aの支払合計金額をだす。 この処理を、別テキストボックスとして、決済日抽出、仕入先抽出、コマンドボタンとして、決済日抽出開始、決済日と仕入先抽出開始をつくりました。 決済日抽出開始のクリック時のマクロビルダとして、フィルタの実行でwhere条件式に[決済日]=[Forms]![販売管理]![決済日抽出]をいれ、できました。 決済日、仕入先抽出開始のクリック時については、上記のwhere式をいれ更にand 以降に同様な考えでいれ、フィルタができました。 そこでですが、コマンドボタンを1つにしてマクロビルダをまとめることをしたいです。 私的には、マクロビルダを1行ずつだったのを、2行(続けて2段の状態)にし、条件式を入れればいいかと思いました。 ただそれだけですと駄目だと思いますので、条件式を入れればいいかなと思いました。 決済日のみを抽出する場合の条件式としては、[仕入先] is null 決済日と仕入先の2つの条件で抽出する場合は、…わかりません。 片方が空欄(仕入先抽出が空欄)のときは、決済日のフィルタ。両方はいってるときは、両方でフィルタというのを1つのコマンドボタンでするのは無理なのでしょうか? 長々となってしまいましたが、よろしくお願い致します。

  • Accessのレコード抽出

    アクセスのレコード抽出条件で、AとB以外を抽出するためにはどのような条件づけをすればいいのでしょうか? Notを使ってみても、Not"A"ならA以外の抽出可能なのですが、Not"A"Or"B"などAとB以外の抽出設定をしたら、すべてが抽出されてしまう(例:A、B、Cすべてが表示されます) どうすれば、いいでしょうか?

  • ACCESS クエリ 条件以外のレコードを抽出するには?

    クエリで、抽出条件(文字列)以外のレコードを全て抽出したいのですが、うまくいきません。 そのフィールドには空白もあり、 抽出条件を「Not In ("A","B")」とすると、 "A","B"以外の文字列が抽出され、空白のものは抽出されません。 「"A"や"B"でない、他の全てのレコードを抽出したい」という場合、どのようにすればよいのでしょうか?

  • Access、検索用フォームでのあいまいな検索

    現在、Accessでデータベース作成をしています。 テーブル:  ・テーブルA          ・テーブルB          (A・B間にリレーションシップ設定) クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム   ・検索用フォーム(デザインビューでフォーム作成より)          ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄  Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)  ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」  検索実行ボタンを作成し、マクロを設定  ・フォームを開く→「検索結果フォーム」  ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。

  • Accessでの検索フォーム作成

    お世話になります。 Accessを使い始めて半月ぐらいの初心者です 次のような条件の検索フォームの作成を依頼されたのですがうまく出来ません。 (1)Accessのフォームフィルタを使用した検索フォームで、3つのテキストボックス(以下TB)を同一 フォーム上に用意し、抽出を実行するボタンと解除するボタンをTBの隣にそれぞれ用意する (2)あいまいな条件(部分一致)で検索出来るようにする (3)抽出結果も同一フォーム上に表示 (4)任意のTBに入力した値で抽出後、他のTBを利用し 絞り込み検索を実行できるようにしたい 現在は下記のように作成しました。 ●テーブル [管理番号]、[品名品番]、[仕入先名]のフィールドを持つテーブルを用意。 ●フォーム(表形式) 上記テーブルに連結した検索フォームを作成し、抽出する値を入力する TBの名前はそれぞれ下のように付けました。 フィールド名    TB名 ・[管理番号]⇒管理番号検索 ・[品名品番]⇒品名品番検索 ・[仕入先名]⇒仕入先名検索 ・[抽出実行ボタン]のイベント(管理番号で検索時) Private Sub コマンド47_Click() Me.Filter = "管理番号 Like '*" & Me!管理番号検索 & "*'" Me.FilterOn = True End Sub ・[抽出解除ボタン]のイベント(管理番号で検索時) Private Sub コマンド49_Click() Me!管理番号検索 = Null Me.FilterOn = False End Sub 他2つも同様に作成して実行した結果、単体での抽出はうまくいくのですが さらに絞り込もうと他のTBに値を入力して抽出を実行すると先の抽出が解除され 単体でのフィルタがかかって抽出されてしまいます。 どなた様か良い案が御座いましたらご指導ください。 初心者のため、説明不足な点があるかと思いますが 不明な点がございましたらご質問くださいませ。 宜しくお願い致します。

  • Accessで、条件に一致するレコード抽出を、2段階できたら3段階でしたい。

    Access初心者のものです。 Accessで商品管理のデータベースを作成しています。 主なテーブルの内容は、 商品番号、商品名、メーカー名、仕入数、仕入単価、販売数、販売単価、などです。 今度は、在庫一覧のフォームを帳票フォームで作りました。そこで、入荷数、販売数などを入力し、現在庫状況をみれる形にしました。 そこでですが、そのフォームである特定の商品を探す際にメーカー名という一つのフィールドに関して抽出する方法はある本を見て抽出することができました。 以下は本をみていれたものです。    ----------------------------------------- 「仕入先抽出_コマンド」 → 抽出開始の為のコマンドボタン 「仕入先抽出条件」 → 抽出したい仕入先名を入力するテキストボックス名 「仕入先」 → 抽出をかける仕入先のフィールド Private Sub 仕入先抽出_コマンド_Click() If IsNull(Me!仕入先抽出条件) = True Then Beep MsgBox "抽出する仕入先を選んでください。", _ vbOKOnly + vbInformation, "抽出仕入先チェック" Me!仕入先抽出条件.SetFocus Exit Sub End If Me.Filter = "仕入先 = '" & Me!仕入先抽出条件 & "'" Me.FilterOn = True If Me.Recordset.RecordCount = 0 Then Beep MsgBox "仕入先抽出条件と一致するレコードは存在しません!", _ vbOKOnly + vbInformation, "レコードなし" Me!仕入先抽出.SetFocus End If End Sub    ----------------------------------------- ここで抽出したものから更に、メーカー名で抽出をかけて絞り込みしたいと考えております。 できれば2段階、3段階(商品情報は仕入先、メーカー名以外にもあるので…)といきたいのですが、何か方法がありますでしょうか? 宜しくお願致します。

  • ACCESS2003 複数のあいまい検索

    あいまい検索を複数の条件を組み合わせる方法について質問です。 ======================== (テーブル) [ID]  [クラス]  [名前]  1     A     野村    2     B     鈴木    3     A     小笠原    4     B     森     5     C     吉田   6     B     青山    7     C     山田      8     A     川野    ======================== ☆上記のテーブルから、[名前]に「田」または「野」または「木」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID]  [クラス]  [名前]  1     A     野村    2     B     鈴木      5     C     吉田   7     C     山田      8     A     川野    ======================== Like '*田*' mLike '*野*' 、Like '*木*' のような関数を使うと思うのですが、 複数条件を組み合わせて、1つのクエリで実行できる方法を教えてください。 お手数お掛けしますが、宜しくお願い致します。

  • アクセスのフォームによるデータ入力について

    顧客の販売履歴管理で サブフォーム上に抽出した顧客データをクリックして 入力用のフォームが立ち上がりデフォルト値として抽出した顧客のデータがすでに入った状態にする方法はどうすればよいでしょうか? 顧客データデーブルと履歴テーブルがあり2間は顧客IDでリレーション関係されています。

  • ACCESS2007あいまい検索について

    いつもお世話になっております。ACCESS2007において、システムを作成しています。元になるデータから情報を抽出して、表示するということなのですがうまくいきません。 検索メニューは下記のとおりです。 <検索メニュー> _________________ |社名:[会社名a] ← AAA、AAA株式会社 ←空白でも構わない。 |内容:[業務内容a] ←電気、水道 ←空白でも構わない。 |住所1:[住所a] ←空白でも構わない。 |住所2:[住所b] ←空白でも構わない。 |           [検索] [入力クリア]  |__________________ どれか、ひとつ情報を入力するようにする。 どこに入力をしても、データを抽出できるようにしたいです。下記は元データのフィールドです。 [ID][呼称][社名][郵便番号][住所][電話番号][郵便番号][住所2][電話番号][内容] 一つの情報さえ入力されれば、抽出されフォームに表示する。選択クエリに下記のような条件式を入れてあります。あいまい検索がうまくいかず、データの1件目しか表示されません。 Like "*" & [Forms]![会社情報検索メニュー]![会社名a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![業務内容a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![住所a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![住所b] & "*" お分かりになる方、どうかご教授ください。お忙しいとは思いますが、どうぞよろしくお願いいたします。

このQ&Aのポイント
  • 5歳下の妹から受ける罵詈雑言に悩む大学生の話です。
  • 妹の反抗期かと思いきや、学校での格差から始まります。
  • 親からも理解されず、家族内での孤立感を感じる主人公の心情を描きます。
回答を見る