• ベストアンサー

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

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

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

  • ベストアンサー
  • platypus
  • ベストアンサー率27% (24/88)
回答No.1

[販売日] is null 若しくは [販売日] like is "" ではいかがでしょう。

PAXSON
質問者

お礼

platypusさん 早速の回答ありがとうございます。 [販売日] is null できました。 自己流の落とし穴というか、未熟さを感じました。 大変ありがとうございました。

その他の回答 (1)

回答No.2

[販売日] is null が正しいです。 likeは文字列の部分一致用です。

PAXSON
質問者

補足

rotesKometさん 早速の回答ありがとうございます。 No.1の方、同様にできました。 2番目ということ申し訳ございませんが、10点とさせていただきます。 今後もちょこちょこと質問すると思いますので、 またの機会がございましたら宜しくお願いします。

関連するQ&A

  • 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のフォーム上で、フィルタをかけたい。

    商品管理フォームをつくってます。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つのコマンドボタンでするのは無理なのでしょうか? 長々となってしまいましたが、よろしくお願い致します。

  • Access97 テキストボックスを利用したあいまい検索フォーム

    Acces97にて下記のようなデータベースを使用しております。  テーブル:銀行コード一覧(銀行コード、銀行名、支店コード、支店名、支店住所)  クエリー:Q-銀行名検索、Q-支店名検索  フォーム:F-銀行名検索、F-支店名検索 今は検索したいフィールド毎にクエリーとフォームが作ってあり、同じようなクエリーとフォームが複数ある状態です。  <クエリー>   (1)Q-銀行名検索→フィールド「銀行名」に【Like "*" & [調べたい銀行名の一部入力] & "*"】設定   (2)Q-支店名検索→フィールド「支店名」に【Like "*" & [調べたい支店名の一部入力] & "*"】設定   ・・・以下同様のクエリー複数あり  <フォーム>   (1)F-銀行名検索にQ-銀行名検索を設定   (2)F-支店名検索にQ-支店名検索を設定   ・・・以下同様のフォーム複数あり 今回作りたいのは、1つのフォーム内に検索したいフィールド分の検索ボタンを作り、検索したい項目をテキストボックス内に入力後該当ボタンをクリックすることによって入力した項目を含むデータが抽出されるというフォームです。 例えば、"東京"と入力し「支店名」ボタンをクリックすると『東京営業部』『東京中央』等"東京"を含むデータが抽出される といった具合です。 部署内にAccess作成事例集なるものがあり、それを元に下記のように作成してみました。 フォーム名を「F-銀行コード一覧」・テキストボックス名を「検索」として、「支店名」ボタンのマクロに [Forms]![F-銀行コード一覧]![検索]=[銀行コード一覧]![支店名] というアクション(フィルタの実行→Where条件式)を設定。しかし、これでは『東京』のみしか抽出されませんでした。 Like関数を利用するのかと思い Like "*"&[Forms]![F-銀行コード一覧]![検索]&"*"=[銀行コード一覧]![支店名] としてみましたが設定できませんでした。 どのようなアクションを設定したらフォームでのあいまい検索ができるのでしょうか?

  • Access2000で複数の検索項目を作りたいのですが・・・

    こんにちわ。 今、Accessで社員録を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:社員録 フィールド名:ID・検索名・氏名・所属ID・所属 ■クエリ クエリ名:社員録クエリ フィールド名:ID・検索名・氏名・所属ID・所属 検索名抽出条件:検索名フィールド: Like [Forms]![社員録 縦]![けんさく]         所属フィールド: Like [Forms]![社員録 縦]![抽出検索名] ■フォーム フォーム名:社員録フォーム:テキスト1・テキスト2・ボタン1       社員録サブフォーム:データソース:社員録クエリ テキスト1:所属を入力 テキスト2:検索名を入力 ボタン1:マクロの再クエリを実行する ■ここからが質問です■ (1)テキスト1又は、2が空白のとき社員録全体から検索かフィルタ。 (2)テキスト1・2が、入力されてる時、両条件から検索かフィルタ。 をしたいのですが、何かいい方法がありましたら教えて下さい。 説明が、長くなってしまってスミマセン。。。

  • 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段階(商品情報は仕入先、メーカー名以外にもあるので…)といきたいのですが、何か方法がありますでしょうか? 宜しくお願致します。

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • Access フォーム 複数キーワードでのOR検索

    クエリQ-TESTには商品名というフィールドがあります。 商品名フィールドの抽出条件には Like "*" & [Forms]![F-search]![商品検索] & "*"と設定しています。 フォームF-searchにはテキストボックスを配置し、名前を商品検索としています。 また、コマンドボタンにて検索の実行ボタンを配置しています。 これを複数キーワード(or検索?)で結果を返したいと思っております。 検索するのは商品名フィールドのみで、キーワードの数は日によって違います。 調べたのですがVBAでの書き方などしかヒットせず 今の私の理解では内容が追いつけません。 http://accessclub.jp/bbs3/0070/superbeg26090.html 作業環境は、OS:Windws7、使用ソフト:Access2003です。 どのように設定すれば複数キーワードでの抽出が可能になるか お力添えいただけますようお願い申し上げます。

  • 検索フォームで空白を抽出したい

    検索フォームを作成しました。 詳細は、 検索文字入力用テキストboxが4つ([検索1][検索2][検索3][検索4]) 検索ボタン、クリアボタンがあります。 検索用クエリを作成し、検索ボタンを押すと実行されるようになっています。 クエリ抽出条件には各フィールドごとに Like ("*" & [Forms]![検索フォーム]![検索] & "*") と記述しました。([検索]は[検索1]~[検索4]まであります) 現在、文字を入力しての検索は上手くいっていますが、フィールドの空白だけを抽出したい場合にどのようにしたらいいのかわかりません。 ご回答宜しくお願いいたします。

  • Access2003 検索用フォームでの検索がうまくいかない

    Access2003 検索用フォームでの検索がうまくいかない とある、テーブルを参照するフォームを作成。 そしてテキストbokを設けて、各項目毎にキーワードを指定してデータを抽出できるようにしたいのですが、 どうもうまくいきません。 検索は出来ているのですが、全部ひっかからないのです。 例えば ID という項目を検索するbox に"1"を入力して ID=1の全データを抽出しようとすると、一部検索にかかってこないものがある という具合です。 テーブルに入力されている数字や文字が本当に一致しているかどうかも調べましたが確かに一致しています。 実際、テーブルを開いて ctr+f で検索すると全てひっかかります。 何が原因なのでしょうか??? 私の作った手順は以下のとおりです。 テーブル作成(エクセルからインポート) ※空白の欄もあります フォーム新規作成でフォーム作成 フォーム上にテキストbox作成 クエリ作成 (Like "*" & [Forms]![フォーム名]![テキストbox名] & "*" ) マクロ作成⇒フィルタ実行/上の手順で作ったクエリを登録 マクロをフォーム上へドロップ およそこのような手順です。

  • Access2003 式ビルダでのLikeについて教えてください

    Acccess初挑戦の状態で困っております。 例えばデータベース内の名前で「山」の文字が含まれる名前を抽出させたい場合、「クエリの抽出条件でLike "*山*"」とすることで抽出できるのはわかるのですが、フォームでマクロの式ビルダを用いて同様の抽出を行いたいのです。 「顧客データ」のテーブルにある「お客様名」のフィールドから、「検索フォーム」の「名前検索」に入力されたキーワードを含むものを抽出させるために、以下の用に式ビルダで作成したのですが、 [顧客データ]![お客様名]=[Forms]![検索フォーム]![名前検索] 完全に一致する場合しか抽出してくれません。 データベース内に「山田 太郎」の名前があったとして検索フォームで「山田 太郎」と入力すると抽出されます。これを「山」と入力しただけで「山田 太郎」が抽出されるようにしたいのです。 Likeの演算子を用いてアスタリスクを使用すれば、できるのかなとは思うのですが、式ビルダへの記述方法がわかりません。 アドバイス頂ければ助かります。