• ベストアンサー

アクセスのフォームで期間検索するには?

アクセスの検索フォームで、レコードを別フォームで表示して、表示したフォームでフィールド毎に検索しています。 日付の部分だけ、検索方法が分からず、なかなか出来ない状態です。 このフォームに、開始と終了のテキストボックスを設置しています。 ボタンを押して、開始と終了の期間のデータを表示出来ればと思います。 宜しくお願いします。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.5

>日付フィールドは、日付/時刻型でyyyy/mm/ddで入力しています。 ということですから Private Sub 期間検索_Click() Me.Filter = "日付 Between #" & Me.[開始] & "# And #" & Me.[終了] & "#" Me.FilterOn = True End Sub

1968masaru
質問者

お礼

対応ありがとうございます。 解決出来ました。

その他の回答 (4)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.4

#1です すみません 肝心なの忘れてました > Me.Filter = "Between #" & _ Me.Filter = "[フォームのレコードソースに使われるフィールド] Between #" & _ > Format(Me.[開始],"yyyy/mm/dd") & "# And #" & _ > Format(Me.[終了],"yyyy/mm/dd") & "#" Betweenの前に、どのフィールドが!って指定して無いですね 他は、ぱっと見大丈夫そうですが・・・ 検索フォームと、表示したフォームって別物?

1968masaru
質問者

お礼

対応ありがとうございます。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

#1です 立て続けで申し訳ない Me.Requery は、Acc97の場合は、必要だったと思うけど・・・Acc2000以降だと、2回フィルタが動作するので、消してね

1968masaru
質問者

補足

この様にしてみました。 Private Sub 期間検索_Click() Me.Filter = "Between #" & _ Format(Me.[開始], "yyyy/mm/dd") & "# And #" & _ Format(Me.[終了], "yyyy/mm/dd") & "#" Me.FilterOn = True End Sub 同じエラーが出てしまいます。。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

#1です あらま^^;;; > Private Sub 期間検索_Click() > Between [開始] And [終了] > End Sub こう言う使い方するなら・・・ Private Sub 期間検索_Click() Me.Filter = "Between #" & _ Format(Me.[開始のコントロール名],"yyyy/mm/dd") & "# And #" & _ Format(Me.[終了のコントロール名],"yyyy/mm/dd") & "#" Me.FilterOn = True Me.Requery End Sub と、言う使用方法かな?

1968masaru
質問者

補足

Private Sub 期間検索_Click() Me.Filter = "Between #" & _ Format(Me.[開始],"yyyy/mm/dd") & "# And #" & _ Format(Me.[終了],"yyyy/mm/dd") & "#" Me.FilterOn = True Me.Requery End Sub この様に、作ってみましたが、エラーが出てしまいます。。 このオブジェクトに値を代入できません、と言うエラーが出てしまいます。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

> このフォームに、開始と終了のテキストボックスを設置しています。 これが、曲者だね・・・日付としてデータがなってるのか?ただのテキストとしてデータが、入ってるのか? 期間として行うなら Between [開始] And [終了] で、抽出可能だけど・・・これは、日付として入力されている場合 テキストの場合は、日付に変換 Between CDate([開始]) And CDate([終了]) あたりで、簡単に行けばよいのだけど・・・ "20080901"あたりで、入ってれば、Format関数で形式を整えてとなるね

1968masaru
質問者

補足

日付フィールドは、日付/時刻型でyyyy/mm/ddで入力しています。 この様にやってみました。 Private Sub 期間検索_Click() Between [開始] And [終了] End Sub エラーが出て、表示できませんでした。。

関連するQ&A

  • MSアクセスで期間検索は?

    アクセスで書式[日付(S)]のフィールドを期間検索するクエリを作りたいのですが良くわかりません。 検索期間入力用のフォームに[開始][終了]のコントロールを書式[日付(S)]で作成しました。

  • ACCESS フォームで抽出条件の違うレコード表示

    宜しくお願いします。 ACCESSでレコードソースをQ_Bとするフォームに、ヘッダー部分に別のクエリ(Q_Aとします)のデータを表示させようと思っています。 Q_Aのデータを元にフォーム内でnoごとに表示するテキストボックス(リストボックスなどでも可)を変えて表示させたいのですがうまくいきません。 Q_Aは No 日付 1 1/15 2 2/1 3 2/5 4 3/12 ・・・レコード数は10あります。 Q_Aの日付フィールドのみ一定期間ごとに変更します。 ですので、一つのテキストボックスには例えば Noのフィールドの「1」のレコードが表示されるようにしたいのです。 Q_Aを元に、レコード数10が個別に表示されるテキストボックス等を、VBAなど?で抽出条件を指定しておきフォームを開いた際に表示できるようにしておきたいのですが、どのような方法があるかご教授願えますでしょうか? よろしくお願い致します。

  • フォームからクエリの抽出期間を指定するにあたって

    フォームのテキストボックス(開始日付,終了日付)に入力された期間内の レコードをクエリで抽出するために、以下のような抽出条件を設定しています。 Between [Forms]![フォーム1]![from date] And [Forms]![フォーム1]![終了日付] ここまでは問題なく出来ています。 ですが、例えばテキストボックスに何も入力していないときに、 全ての期間から全件表示させるような方法はありませんでしょうか? IIf(IsNull([Forms]![フォーム1]![開始日付]),True,~ というような形で、IIfとIsNullの組み合わせも考えたのですが、 日付は直接フィールドでは無く抽出条件のため、 Trueより後が設定できずに悩んでおります。 出来ればVBAは使いたくないのですが、 何か良い方法はありませんでしょうか?

  • Accessであいまい検索するフォームをつくってみたんですが?

    Accessの初心者です。 本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。 クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど) フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか? よろしくお願いします。

  • Access フォームからの検索について

    初歩的な質問で申し訳ありませんが教えて下さい。 Access2000を使っています。 フォームに作ったテキストボックスに、入力した値又は文字と、特定のフィールドと比較し一致した場合にそのレコードをフォームに表示する方法はないでしょうか? いろいろと、web上のQ&Aなども見ましたが、思った動作をしませでした。 考えているのは、   ・テキストボックスにある値を入力し、『Enter』を押すとテキストボックスに入力した値と特定のフィールドと一致したレコードをフォームに表示 ・一致しない場合はメッセージボックスで一致しない旨を表示 です。 ・完全一致のみ表示 VBAでの動作を考えていますが、合わせて他の方法があれば教示頂ければと思います。 以上、お手数をお掛け致しますがよろしくお願い致します。

  • ACCESS2003でクエリを使った検索フォームを作っています。

    ACCESS2003でクエリを使った検索フォームを作っています。 クエリは以下の様になっています。 ----------  番号   タイプ   品名  1111   AA     商品1  2222   AA     しょうひん2  3333   BB     商品しょうひん3 ---------- 品名のフィールドの抽出条件に ---------- Like "*" & [Forms]![品名検索フォーム]![品名検索] & "*" ---------- と入れています。 品名検索フォームは帳票タイプで、フォームヘッダーにテキストボックスを設け 「品名検索」と名前をつけています。 テキストボックスに【商品】と入力すれば番号1111と3333が、【しょうひん】と入力すれば 番号2222と3333が抽出されるように設定し、ここはうまく動きました。 ただ、このフォームを開いた際、テキストボックスは空欄になっているため、全レコードが 表示されてしまいます。テキストボックスが空欄の際は、何も表示したくないのですが どこを触ればいいのでしょうか? どうかよろしくお願いいたします。

  • Access 検索した値を別フォームに

    Accessのシステムを会社で作ってます。 検索したIDをサブフォーム(データシート型) で表示したレコードを編集フォーム(別フォーム)に呼び出したいのですが上手く出来ません。 ネットでも検索しましたが良いのがありませんでした。 どなたか、お手数ですがコードを教えていただけないでしょうか? 何卒よろしくお願いします。 *adodbとDAOのどちらか使う必要があるならDAOを使用して作成したいです。 *クエリは使わずに作成したいです。 ○検索フォーム 検索ボタン ID入力テキスト 編集ボタン サブフォーム(データシート型) 編集ボタンを押すと ○編集フォーム 単帳型 *レコード項目 ID プロジェクト名 日付 モジュールNO

  • Accessの検索用フォーム

    Access初心者です。 テキスト学習をしていまして「フォーム」上で膨大なデータを、「検索用」にコンボボックスを作成して検索をかけることができる・・・とありました。 検索用のコンボボックスとして「日付」で検索をしたいと思うのですが、日付の表示方法を「カレンダー」のように表示することはできますか? また、設定の仕方を教えていただけると助かります。 よろしくお願いいたします。

  • Accessフォームの検索画面作成について

    ご存知の方、教えてください。 ・会員情報の単票フォームを作成し、同フォームのフォームヘッダーにテキストボックスとボタンを作成しました。 ・テキストボックスにフリガナの頭文字を入力し、ボタンを押すと、該当する会員のレコードが表示されるようにしました。 (VBAのFindRecordで作成) ここからが分からないのですが・・・。 ・フリガナに同じ頭文字を持つレコードが複数ある場合、「次へ」というボタンを押すと上部レコードから順に次のレコードが表示されるようにしたいのです。また、同じ頭文字のレコードがない場合は「検索が終了しました」というメッセージを表示したいのです。 VBAでどのような記述をすればいいのか、教えてください。よろしくお願いします。

  • AccessのVBAにおいて,アクセスフォームに表示されている「値」を

    AccessのVBAにおいて,アクセスフォームに表示されている「値」を変数の中に格納したい。  例えば,オートフォームの単票形式でフォームを作成した場合,「番号」「製品」といったフィールドが2個あるテーブルを使うと,「番号」「製品」という名前のテキストボックスが2個ほどできます。 (フィールド名やテキストボックス名は問題ではありません。) このフォーム上に「ボタン」を配置し,このボタンをクリックした時に,「製品」というテキストボックスの内容を,メッセージボックスで表示させたい。 MsgBox (Me.製品.Text) と書いてもエラーとなります。 実際には,このフォームで欲しいデータを見つけた時,ボタンクリックで,テキストボックスに表示されている内容をグローバル変数に格納したいのですが,方法が分かりません。 Access 初心者です。どなたかよろしくお願いします。

専門家に質問してみよう