• ベストアンサー

アクセス2007で

アクセス2007で、クエリで検索条件を"~年~月~日から~年~月~日"までとし、それぞれ開始月、終了月を入力するとその間のデータが表示される様にしたのですが、この年月日を入力する際に、フォームに日付を入力する時の様にカレンダーが表示され、カレンダーの日を選択すれば入力できる様にできませんか? 誰か教えて下さい。よろしくお願いします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.4

#1です ご質問の内容は、クエリの検索条件に Between [開始月] And [終了月] を書いており、 クエリ単体で開いた時の「開始月」「終了月」の入力時にカレンダーを表示したい。 と解釈しましたが、間違ってましたか? フォームを使ってよいのなら、VBAの記述しなくてもできると思います。 以下のフォームを作るとします。 フォーム名:F検索 テキストボックス名:開始月、終了月 コマンドボタン名:検索 1)開始月、終了月のプロパティ設定 「書式」を「日付 (S)」 「日付選択カレンダーの表示」を「日付」 2007では、上記2つの設定で、テキストボックス横にカレンダー表示用のマーク(?)が表示されます。 直接、またはカレンダーを表示させてのクリックで入力します。 このマークは、テキストボックスをクリックするなど入力状態になった時表示されます。 必ず入力させたいので、引き続き設定していきます。 「入力規則」に  Is Not Null 「エラーメッセージ」に  必ず入力してください 初期表示用に「既定値」で、それなりの範囲を設定しておきます。 例として、今日から一か月前を初期範囲として設定するとしたら 開始月の既定値に =DateAdd("m",-1,Date())+1 終了月の既定値に =Date() 今日時点での表示をみると、開始月は 2009/10/05 終了月は 2009/11/04 となります。 2)コマンドボタン クリック時にクエリを開く内容とします。 マクロでは、アクション:クエリを開く でクエリを指定します。 3)クエリからの参照 クエリでフォームを参照する時には、以下の様な書き方になります。 [Forms]![F検索]![開始月] [Forms]![F検索]![終了月] 検索条件に Between [Forms]![F検索]![開始月] And [Forms]![F検索]![終了月] クエリの種類によっては、この記述だけではできない時もあります。 '[Forms]![F検索]![開始月]'を有効なフィールド名、または式として認識できません というエラーが出た場合、[Forms]![F検索]![開始月] のデータ型を指定します。 クエリのデザイン画面で、テーブル表示の周りの空白部分でマウス右クリックし、 「パラメータ」を選びます。 パラメータに [Forms]![F検索]![開始月] データ型に 日付/時刻型 を指定します。 [Forms]![F検索]![終了月] も同様に設定します。 クロス集計とかの場合に設定することがあります。

doradora64
質問者

お礼

丁寧な回答、ありがとうございました。 大変助かりました。

その他の回答 (3)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.3

別にフォーム(例えば[メニュー])を追加して、ここへ開始月と終了月のボックスと 目的のフォームを開くコマンドボックスで開くのはどうでしょう クエリの検索条件には between forms!メニュー!開始月 and formse!メニュー!終了日 とします。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

使用者へのサービス精神はわかるが、質問者に力がない場合は、難しくするだけと思う。 FROM-Toの2つの日付を決定する必要があるが、FROM用カレンダー、To用カレンダーと2つ設ければ簡単だが、格好よくなく、1つで間に合わせるには、アクセスVBAを使う必要があるのではないかな。 FRO日付が空白でなければ、TO日付にセットなどの切り替えが、VBAを使わずできるかな。 質問者はVBAは経験あるのかな。

doradora64
質問者

補足

FROM用、TO用の2つのカレンダーを設ける方法は簡単にできますか? 簡単にできるのであれば、ぜひ教えて頂きたいです。 VBAに関しては、最近アクセスを使い始めました。以前はエクセルを使い、データベースを作り、エクセルのVBAを使い(この様な質問の場を利用して、皆様に知恵を貸して頂き少しづつ覚えている最中です。)なんとか形にはしました。できればVBAを使う方法も教えて頂きたいです。 よろしくお願いします。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

フォームを参照させるようにしないと、できないと思います。