• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 日付(可変)抽出)

Access 日付抽出で困っている方への解決方法

piroin654の回答

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

いずれ必要になると思いますので、先に述べておきます。 >ボタンに対する「マクロの登録」でそれを選べるのでマクロなのでしょうか。 >下記に記して頂いたPrivate sub~End subのコードです。 検索対象のテーブルを基にフォームを作成する、とします。 (出来ているフォームに機能の追加もできます。) (1) フォームの「新規作成」から「基になるテーブルまたはクエリの選択」  で、対象のテーブルを選択します。 (2) フォームは「オートフォーム表形式」を選択します。 (3) 「OK」を押すと自動的にフォームが作成されます。 (4) 出来上がったフォームを閉じるときに適当な名前で  保存します。 (5) このフォームをデザインビューで開きます。 (6) フォームの「詳細」の上部にマウスをあてるとマウスポインタが  十字になります。マウスボタンを押したまま、グイッと下に押し下げます。  ついでに、残ったラベルもすべて選択して「詳細」の上部にくっつけます。 (7) 空いたスペースにテキストボックスを二つ、ボタンを二つ設定します。 (8) テキストボックスの名前をそれぞれのプロパティシートで  「tx自日」、「tx至日」とします。 (9) ボタンの一つのプロパティシートを表示し、「名前」を「フィルタ実行」  とし、標題も「フィルタ実行」としておきます。  同じ、プロパティシートで「クリック時」の項目で「イベントプロシージャ」  を選択し、右のボタンをクリックすると、コードが表示されます。  コード表の、    Private Sub フィルタ実行_Click()    End Sub  というところのなかに、    Me.Filter = "日付>=Date() + 1 AND 日付<=Date() + 5"    Me.FilterOn = True  をコピーし、貼り付けます。つまり、    Private Sub フィルタ実行_Click()    Me.Filter = "日付>=Date() + 1 AND 日付<=Date() + 5"    Me.FilterOn = True    End Sub  のように、なります。このまま保存してボタンを押せば  「明日から5日間という期間を指定して抽出」  ということができます。  しかし、これでは、この機能だけになるので、質問の  「Access 日付(可変)抽出」ということを任意の期間で  実現できないので、「フィルタ実行」ボタンをクリックしたときの  イベントを以下のようにします。(中身をコピーし貼り付けてください)  なお、コード中の  "日付 Between #" & Me!tx自日 & "# AND #" & Me!tx至日 & "#"  で、最初の「日付」はフォームの日付を表示するテキストボックス  の「コントロールソース」の名前です。この場合はテーブルの  日付を表示するフィールドの名前が「日付」という設定です。  テーブルのフィールドの名前が違っていたらこの部分を  書き変えてください。たとえば、「誕生日」というフィールド名  ならば、   "誕生日 Between #" & Me!tx自日 & "# AND #" & Me!tx至日 & "#"  のように。 Private Sub フィルタ実行_Click() If Not IsNull(Me!tx自日) And Not IsNull(Me!tx至日) Then Me.Filter = "日付 Between #" & Me!tx自日 & "# AND #" & Me!tx至日 & "#" Me.FilterOn = True Else MsgBox "日付が入力されていません。" End If End Sub このようにすると、テキストボックスにたとえば、   「2015/06/12」、「2015/06/20」  と入力してボタンをクリックすると期間のデータが  表示されます。二つのテキストボックスに同じ日付  を入力してボタンをクリックするとその日のデータが  表示されます。なお、どちらかのテキストボックスに  日付を入れただけでその日のデータを表示することも  できますが、少しコードが混雑するので必要ならば  書きます。 (10) 残りのボタンのプロパティシートで、「名前」を  「フィルタ解除」とし、「標題」も「フィルタ解除」  とします。  (9)と同様に、「クリック時」で「イベントプロシージャ」を  選択し、右のボタンをクリックし、コード表で、  Private Sub フィルタ解除_Click()  Me.FilterOn = False  End Sub  のように、設定します。このボタンをクリックすると、  フィルタが解除されてデータがすべて表示されます。 以上です。わからないところがあれば補足してください。  

urbanite
質問者

お礼

ご回答ありがとうございます。 誠に申し上げにくいのですが。 私は今エクセルのファイルで運用しているものをアクセスに移行しようと奮闘中でありまして、本質問を書いた時には相当頭がこんがらがっていたようでAccessではなくExcelで困っていた内容でした(><;;) しかも今日符号の向きが逆だっただけという事まで発覚し、会社でpiroin654さんに合わせる顔がない!と思っていましたorz 本当に申し訳ありませんでした!m(_ _)m でも、同じ事をアクセスでもしようと思っているので教えて頂きました内容は活かします!(^^;;) 本当に申し訳ありません。そしてありがとうございます!(><)

関連するQ&A

  • Access 日付抽出について

    Access2000のクエリにて、ある特定日付の抽出ができません。 テーブルの日付項目は、日付/時刻型です。 テーブルを開くと、「2008/02/01 12:59:00」のように見えます。 クエリで抽出する時に、「#2008/02/01#」で抽出されると思って いるのですが、実行すると抽出できません。 どのようにクエリ設定をすればよろしいでしょうか?

  • Accessのフォームで日付の範囲での抽出

    初心者です、Access2000/WinXPで使用しています、Accessのフォームで日付の範囲での抽出仕方が解らなくて困っています、日付をそれぞれコンボボックスで指定しています、コンボボックスAとコンボボックスBの日付間での抽出なのですが、それを一つのコマンドボタンで抽出したいのです、 簡単に説明します。 メニュー抽出:フォームの コンボボックスA:集合ソースメニュー/総合抽出クエリ コンボボックスB:集合ソースメニュー/総合抽出クエリ txt2(コンボボックス):集合ソースメニュー/総合抽出クエリ コマンド4(これは検索と言う名前でtxt2で指定した名前を抽出するのに使っています) Private Sub コマンド4_Click() 'レコードを抽出 Me.Requery End Sub と、してあります このコマンド4でコンボA~コンボBの期間のtxt2の品目を総合抽出クエリから抽出するにはどうすればよろしいでしょうか?宜しくお願いいたします。

  • 日付データの抽出方法を教えてください

    ACCESS97のVBAで開発しています。ACCESSデータベースから該当する日付データを抽出したいのですが、YYYYのみの条件でYYYY/1/1からYYYY/12/31までのデータを抽出したいのです。SQLでできるのでしょうか?もしできるのならそのやり方を教えてください。

  • アクセスでの抽出方法(日付+時刻)

    こんにちは いつもお世話になってますm(_ _)m アクセスでの抽出方法に悩んでます。 毎日、上司への報告で前日の17:00までに受付た情報を抽出してます。 条件は「<=Date()」です。 この条件だと前日の17:30以降のデータも引っ張ってきてしまいます。 思い切って「<=#2005/07/05 17:30#」のように日付を指定してしまう 方法もあるのですが・・・ 毎日やることなのでできれば関数で抽出できますでしょうか?

  • Excelで同じ商品名で、かつ日付が古いものを抽出する方法

    ご存知の方、いらっしゃいましたらお願いします。 Excelは2003を使用しています。 複数の条件での抽出で名前が決まっているものは「フィルタオプションの設定」で行っていますが、日付が古いもの、新しいものの抽出方法がわかりません。 「同じ商品名」かつ「日付が古いもの」を抽出したいのですが、それが出来そうな関数、マクロはありますでしょうか。 当方マクロ知識は「マクロの記録」程度です。 A列  B列    C列 商品A 2007/12/01 10:00 商品B 2008/04/01 10:00 商品A 2008/05/01 10:00 現在は目視、手動で★印を別列につけ、それを抽出し削除しています。 削除フラグとして★印等をつけるようなものでも、わかれば嬉しいです。

  • 日付で抽出 VBA マクロ処理

    日付でその日から1ヶ月の間の購入した図書データを 抽出したいのですが、マクロ初心者なのでなにも分かりません;; オートフィルタではない方法でやらなければなりません;; 日付でデータを抽出するにはどの関数を使えばいいでしょうか。 また、その日から1ヶ月の間というとこに さらにわからなくなります;; また、抽出されたデータを違うシートへとコピー しなければなりません;; 詳しく教えていただけると幸いです;; よろしくお願いいたします;;

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • 検索したい日付からデータを抽出したい。

    こんにちわ。 キャンペーンが何日~何日までどういった内容がある、という一覧を作成しています。 Aの列が開始日、Bの列が終了日、Cの列がキャンペーン内容、です。 検索したい日付をD1のセルに入力したら、その日付に該当するキャンペーンすべてを別のシートに抽出できないでしょうか・・・ オートフィルタで抽出は出来るのですが、日付を入力しただけで抽出 させたいのですが、無理でしょうか・・・ よろしくお願いします。

  • Access抽出クエリの基本的なこと

    お世話になります。 初心者で苦労しながらもAccess2000でデータベースを作成しています。 非常に基本的な質問だと思うのですが、どなたかご教授願います。 日付を含むフィールドがあるテーブルがあり、クエリにてその日付から 年と月を拾っています。 ID   入力日   年:Year([入力日])   月:Month([入力日]) 1   2001/07/06    2001          6 2   2002/06/07    2002          6 3   2002/07/19    2002          7 別に作成したフォームに年と月を絞り込むためのコンボボックスをそれぞれ配置し、 入力された値によって上記クエリの抽出条件に反映させたいのですが、コンボに何も 入力されていないときは全てのデータを表示したいんです。 「コンボ月=2002」&「コンボ月=6」でID=2のデータのみを、 「コンボ月=(Null)」&「コンボ月=6」でID=1と2のデータを表示したいんです。 (判りにくくてすみません。。) このような場合、抽出条件に記述する式はどのように設定したら良いのでしょうか? IIfでIsNullの条件式を組んだのですが、Nullの時に返す値が判りません。 どうかよろしくお願いします。

  • アクセスで期間抽出

    お尋ねします アクセスで納品書のデータベースがあります   納品書データFormには 伝票番号、日付、客先名、数量のフィールドのフォームで テキストボックス1:始めの日 テキストボックス2:終了日 コマンドボタン1:期間で抽出 が配置しています テキストボックス1,2に日付、記入後、コマンドボタン1をクリックして 所要期間でフィルターで抽出するのですがうまく行きません コマンドボタン1クリック時のコード Private Sub コマンド1_Click() Me.Filter = "日付= 'Between" & Me![テキスト1] & "And" & Me![テキスト2] & "'" Me.FilterOn = True End Sub のコードで抽出してくれません、不都合をご指摘下さい なお 指定日での抽出は以下で出来ました。 Private Sub コマンド1_Click()  Me.Filter = "日付= '" & Me![テキスト1] & "'" Me.FilterOn = True End Sub エクセルのモジュールは少しかじったのですがアクセスは 始めたばかりでなかなか要領を得ません 宜しくお教え下さい。