• 締切済み

空白の日付型の抽出について

初心者なのでどなたかご指導ください。 日付型のデータ「A」と「B」があります。 「A」が空白以外で、「B」が空白の時のデータをfilterを使って抽出したいのですが、上手くいきません。 こんな感じでやってみたのですが、やはり駄目でした。 objrs.filter = "A<>"" and isnull(objrs('B'))" どなたか教えてください。

みんなの回答

  • Gimli
  • ベストアンサー率47% (9/19)
回答No.3

objrs.filter = "(A <> NULL) and (B = NULL)" これだとどうですか。

全文を見る
すると、全ての回答が全文表示されます。
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.2

#1です。 なんか、でたらめ教えちゃったみたいですね。 すみません。 いろいろ自分でも試してみましたが、うまくいかないですね(;´▽`A`` 該当する条件で、読み直しするようにしてみてはいかがでしょうか?

good_morning
質問者

お礼

ご丁寧なアドバイスありがとうございます。 もう一度見直して、別の方法を考えるしかなさそうですね。

全文を見る
すると、全ての回答が全文表示されます。
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.1

日付型は空文字("")にはなりません。 この場合、「A」がNull以外となります。 objrs.Filter = "Not(IsNull(objrs('A'))) and IsNull(objrs('B'))" これでどうでしょうか?

good_morning
質問者

お礼

回答ありがとうございます。 ご指導頂いたようにやってみたのですが、以下のようなメッセージが表示され、駄目でした。 「引数が間違った型、許容範囲外、または競合しています。」 色々な方法でやってみたのですが、やはり上記のメッセージが表示されます。 他に何かよい方法があればご指導ください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 日付によるデータ抽出について

    日付によるデータ抽出について 環境: ACCESS2000 状況: メインフォーム(テキスト期間A、テキスト期間B、テキスト品番、検索ボタン)    サブフォーム(データシート)    管理テーブル( 品番  /  レンタル日  /  返却日)    ※管理テーブルは他テーブルのコピー用 やりたい事: 簡潔にいうと期間と品番による抽出。       但し、テキスト期間Bが空白の場合、テキスト期間A以降のデータ抽出。          テキスト期間Aが空白の場合、テキスト期間B以前のデータ抽出。       さらに、テキスト品番が空白の場合、期間のみでの抽出。    コード: Private Sub 検索ボタン_Click()  Dim db As DAO.Database   Set db = CurrentDb   db.Execute "DELETE * FROM 管理テーブル"   db.Execute "INSERT INTO 管理テーブル SELECT * FROM 他テーブル"  Dim 抽出条件 As String   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=True And IsNull(Me!テキスト品番)= True Then    抽出条件 = "[レンタル日] <= '" & Me!テキスト期間A & "'"   End If   If IsNull(Me!テキスト期間A)=True And IsNull(Me!テキスト期間B)=False And IsNull(Me!テキスト品番)= True Then    抽出条件 = "[レンタル日] >= '" & Me!テキスト期間B & "'"   End If   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=False And IsNull(Me!テキスト品番)= True Then    抽出条件 = "[品番] <= '" & Me!テキスト品番 & "'"   End If   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=True And IsNull(Me!テキスト品番)= False Then    抽出条件 = "[レンタル日] >= '" & Me!テキスト期間A & "'" And "[品番]='" & Me!テキスト品番 & "'"   End If   If IsNull(Me!テキスト期間A)=False And IsNull(Me!テキスト期間B)=False And IsNull(Me!テキスト品番)= False Then    抽出条件 = "[レンタル日] Between " $ Me!テキスト期間A & " & Me!テキスト期間B And "[品番] = '" & Me!テキスト品番 & "'"   End If Me!サブフォーム.Form.Filter = 抽出条件 ← 実行時エラー2465 指定した式で参照されている'サブフォーム'フィールドが見つかりません。 Me!サブフォーム.Form.FilterOn = True End Sub 上記エラーが出てしまうのですが、まだまだ未熟で どこが悪いかわからなくて困っております。 間違っていたりと上手くないコードだとは思いますが ご教授の程宜しくお願い致します。   

  • 日付によるデータ抽出について

    日付によるデータ抽出について 環境: ACCESS2000 状況: メインフォーム(テキスト期間A、テキスト期間B、テキスト品番、検索ボタン)    サブフォーム(データシート)    管理テーブル( 品番  /  レンタル日  /  返却日)    ※管理テーブルは他テーブルのコピー用 やりたい事: 簡潔にいうと期間と品番による抽出。       但し、テキスト期間Bが空白の場合、テキスト期間A以降のデータ抽出。          テキスト期間Aが空白の場合、テキスト期間B以前のデータ抽出。       さらに、テキスト品番が空白の場合、期間のみでの抽出。       逆にテキスト期間A・Bが空白の場合、テキスト品番で抽出。(品番の履歴抽出) 1度コードを作ってはみたものの、エラーばかりでひどかったので 0から教えて頂けると有難いです。 お手数お掛けしますが、何卒宜しくお願い致します。

  • 日付の抽出

    アクセスで日付が入力されているサブフォームから期間を指定して抽出したいと考えています。 Me!sub担当者別.Form.Filter = "日付 Between #" & Me!txt開始 & "# And #" & Me!txt終了 & "#" というふうにしたのですが、txt開始に02/02/02、txt終了に02/03/27を入力すると表示されるのに、txt開始に02/03/20とすると表示されるはずのデータが存在しているのに表示されません。 どうしてこういう風に表示されたり、されなかったりするのかがよく分かりません。 よろしくお願いします。

  • DB抽出の日付が参照できない

    DB抽出データをエクセルに出力して仕事用に参照しています。 エクセルA列1に任意の日付を入力して、仕入れの集計をしてるのですが、参照してくれません。(一致しない?) 抽出されたエクセル日付列のデータ書式定義をみると、 「ユーザー定義dd-mmm-yyyy」となっており、 データは、 (例) 日付列 2008/6/10 6:53:41 と時間まで入っていました。 DBに書き込まれた時間だと思いますが。。。? A1に任意入力「6/10」して、日付列と一致した場合に、 仕入れ数を合計したいのですが、 条件を B1=A1 B1=DAY(A1) B1=MONTH(A1)・・・ などいろいろ試みたのですが、抽出してくれませんTT 日単位でいいのですが、時間まで一致しないとだめなのでしょうか? スキル足りません・・・お力を

  • エクセルVBA 日付で抽出、並び替え

    こういう場で初めて質問させていただきます。 どうぞよろしくお願いします。 エクセルVBAで日付(月毎)でデータを抽出し、並び替えを行いたいのですが, B列に日付が入りC~F列には帳簿の仕訳が入ります。 ここで B2 に日付が入って、C2~F2とC3~D3にデータが入った場合に オートフィルタをかけたら、3行目は日付の欄が空白なので うまく抽出できません。 なお、2行目と3行目は1つの仕訳なのでばらばらになるのも困ります。   仕訳は最低1行から最大で6行になります。 このように日付欄は1行だけど、その日付に対応する内容が数行に渡って入るような場合に日付から月毎にデータ抽出するには どのようなコードを書けばいいのでしょうか? A B    C      D     E    F  日付 借方科目 金額 貸方科目 金額  10/10 消耗品  300    現金   500        雑費   200   10/9   交際費  500    現金   500   10/8    雑費   200     現金   200 汚い表ですが、上記のような場合です。 10/10の分は2行で1つになりますので、このような場合です。 どうかよろしくご指導お願いします。 

  • 連続していない日付データからの抽出

    エクセルで、   A   B 1 日付 売上   2 11/21  900 3 11/22 2000 4 11/26 1800 5 11/27 1300   D    E 1 日付  前日比 2 11/21 **% 3 11/22 **% 4 11/26 **% 5 11/27 **% とあります。 そこで、   G   H   I 1 日付 売上 前日比 2 任意 (抽出) (抽出) 3 と、Gに日付を入力したらH、Iにデータが抽出されるように関数を作りたいと思います。 Hには =INDEX(A2:B5,MATCH(G1,A2:A5,0),2) Iには =INDEX(D2:E5,MATCH(G1,D2:D5,0),2) と入力して抽出をしましたが、 例えばG列に元データには無い、「11/23」が入力されたときは、11/23よりも先で1番にくる11/26のデータを抽出するようにしたいのですが、どうしたらいいでしょうか? よろしくお願いします。

  • エクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

    例えばこんなデータなのですが、 2002/07/01 99 25 36 2002/07/05 55 33 25 2002/08/01 80 20 51 日付の入っている列を検索して、2002/07/01から2002/07/31 の範囲ならば、その行のデータを別のシートに抽出したいのですが、 日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら between 9999/99/99 and 9999/99/99って感じで簡単にできるの ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って >=2002/07/01 <=2002/07/31 と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して くれると考えたのですが、なぜかダメでした。 (↓こういう入力をしました) =IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

  • 空白ではないセルを抽出したい

    エクセルで空白を含む列の中から 空白以外のセルを順に表示させたいのですが、可能でしょうか? 例えば、 社名   売上額 A社   1,000      2,000      3,000      4,000 B社    5,000      6,000      7,000 C社    8,000      9,000      10,000      11,000      12,000 の表を 社名  売上 計 A社   10,000 B社   18,000 C社   50,000 の様に集計表を作るのに、社名の列の空白の行を詰めて表示させたいのですが、 オートフィルタや並べ替えを使わずに関数で抽出したいと思っているのですが、可能でしょうか? 宜しくお願いします。

  • accessで空白の時の抽出

    access2000を使っています。まだ初心者なので難しい事はできないのですが、クエリを使って絞り込み検索のフォームを作っています。 テーブル内のデータで空白のデータがあります。その際にクエリの抽出条件にlike iif(is null([forms]![formA]![テキスト100]),"*","*"&[forms]![formA]![テキスト100]&"*")としています。フォームのテキストが空白のときは全て抽出するという条件を満たす予定で設定したのですが、テーブル内のデータが空白の物が抽出できません。データが空白がない様にすればいいのでしょうが、クエリの条件で設定できないものでしょうか?データはテキスト型です。

  • 今日の日付のデータをすばやく抽出するには・・

    売上日報をエクセルで作っています。 A列に1から順にNOを入れています(LOOKUP関数を使うためです) B列に日付を入れています。 C列に社名を入れています。 その他の列にもいろんなデータが入っています。 本日の日付だけをすばやく抽出したいと思うのですが、どうすれいいか分かりません。 オートフィルタで今日の日付を選ぶ方法はやれます。 でも、もっと早く抽出できる方法はないでしょうか? 数ヶ月分のデータが入っているため、オートフィルタの三角をおしたあと、今日の日付を探すのに結構手間取ります。 もっとすばやく抽出したいのです。どんな方法でもいいです。どなたか教えて下さい。