• ベストアンサー

アクセス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/17068)
回答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

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

関連するQ&A

  • アクセスで

    アクセスでフォームが5つあるとします。(フォーム名は、1,2,3,4,5とします。)フォームにはすべて"開始年月日"と"終了年月日"の項目があり、5つのクエリの検索をそれぞれ入力する様になっています。 又、テーブル1があり、このテーブルは毎日データが追加されていきますが(1日50ほど)、追加されたデータは、その日のデータでは無く、2日前の物の場合もあれば、休みを挟んだりすると5日前の物の場合もあります。そのデータ自体の"年月日"フィールドがあります。 まず全てのフォームの"終了年月日"の項目の既定値をテーブル1の"年月日にする事"はできますか? そしてフォーム1で"開始年月日"と"終了年月日"を入力し確定した時に、その他のフォームを開くとフォーム1で入力した"開始年月日"と"終了年月日"が入力された状態にしたいのです。これは、フォーム1で"開始、終了年月日"を入力した場合だけでなく、どのフォームで"開始、終了年月日"を入力した場合でも、その他のフォームを開くと同じ"開始、終了年月日"がまず入力された状態になっていて変更し確定した場合は、他のフォームの"開始、終了年月日"も変更されているという様にしたいのです。 説明がうまくできなくてすいませんが、誰か教えて頂けないでしょうか?よろしくお願いします。

  • アクセス2003のカレンダー使用について教えてください。

    アクセス2003のカレンダー使用について教えてください。 選択クエリがレコードソースの帳票フォームがあります。日付を入力して、その日付のレコードのみ抽出するようにいているのですが、これをカレンダーの日付と連動させて、そのフォームを開いたら自動でその日付のレコードのみ抽出できるようにしたいです。マクロを使って(値代入)ためしてみたのですが、うまくできませんでした。カレンダーはメインフォーム上にあり、別フォームでは簡単に値代入できています。ただ、選択クエリのように、抽出条件のところには代入は無理なのでしょうか?どなたかよろしくお願いいたします。。。

  • Access2000の件です。

    OSがWIN98で、Access2000をやってます。 1)カレンダーコントロールで選択した日付のデータを、 2)テーブルから抜き出して、サブフォームで表示し、 3)コマンドボタンで新しいレコードの追加を行い、 4)追加したレコードに、年月日+通し番号の識別IDのみを   デフォルトで与え、その通し番号を、テキストBoxに、   表示させようとしています。 私なりの作業 1)カレンダーにクリック時のイベントが無かったので、   年月日という名のテーブルに、現在選択されている   日付を代入するマクロを、コマンドボタンのイベントにしました。 2)クエリを作り、抽出条件に   ≪[年月日]![年月日]≫が日付と等しい、にしたフォームを   作り、サブフォームに設定しました。 ところが、この時点で、サブフォームに検索されません。 前回終了時に年月日テーブルに保存された日付でしか、 検索されません。 いろいろ考えてましたので、各コントロールの設定も、 かなりいじってます。 ひょっとしたら簡単なことなのかも、しれません。 が、煮詰まってしまってますので、考え付きません。 どうか、助けてください。

  • Access 2003 締日の表示

    ACCESS 2003にて請求書を作成しております。 クエリにて フィールド:日付 抽出条件:between [開始日] and [終了日] と設定しております。 レポートに請求日があり、[終了日]を表示させたいのですがうまくいきません。20日締切の場合、例えば、平成23年12月20日とレポートに表示させたいのですがどのようにすればよいでしょうか。 [日付]を配置すると一番最初の売り上げの日付が表示されてしまいます。 出来れば、抽出条件に入力した[終了日]を表示させたいです。お客様により、20締めと月末締めがあるためです。

  • アクセス2007のフォーム

    アクセス2007のフォームで、日付入力する項目のプロパティ―シートのデータタブの既定値の式ビルダで、先月の最終日にカレンダーを開いた時の日付が設定される様にするにはどうしたらいいですか? 例えば今日の日付が2009年11月10日ならば、カレンダーを開くと2009年10月31日が選択されている様にしたいです。 誰か教えて下さい。よろしくお願いします。

  • アクセスのレポート印刷時にフォームを使ってデータ抽出がうまくいきません

    アクセスで簡単な生産管理を行おうと思っています。 生産した商品の数量などが生産した日付別にデータ として入力してあります。レポートのもとになるクエリー を作って、(集計クエリー) レポートを開くときにマクロを使ってフォームを開き、 そこで、商品CDの指定と日付範囲の指定をしています。 最初は、マクロでアクション「レポートを開く」の WHERE条件式で[商品CD]=FROMS![印刷フォーム]![商品CD] でうまく商品CDの指定はできたのですが、日付範囲はどうマクロを 組んでやればよいのかわかりません。WHERE条件式を入力するところは 一箇所しかありませんので、マクロでもうひとつアクション 「レポートを開く」のWHERE条件式で [年月日]between Forms![印刷フォーム]![開始日] and Forms![印刷フォーム]![終了日]と入力しましたがうまくゆきません。 どうすればよいでしょうか?初心者でよくわかりません。

  • ACCESS2000 クエリの抽出条件

    フィールドに無作為に年月日が入力されているとします。 クエリの抽出条件に>2008/1/1と入力すると「2008年1月1日よりも新しい日付のレコード」を選択できます。 新しい日付の上位25までを選択するためには、抽出条件になんと入力したらいいのでしょうか。あまりにも基本的な質問かもしれませんが、お時間の許す方にお願いします。

  • アクセス 抽出日時をレポートに表示したい

    アクセスで在庫表を作っています。クエリでBetween [開始年月日を入力] And [終了年月日を入力]という形で抽出、そのクエリを元にレポートで毎月月末〆で入庫分、出庫分をだしているのですが、『いつからいつまでの分』をレポート上に自動入力させたいのです。(Between [開始年月日を入力] And [終了年月日を入力]に実際に入力した「12/1」「12/31」のこの「」に入力した日付が、レポートヘッダー等に自動的に入る設定とか組み込めたらいいなと思いまして。今は毎回抽出した日付を手書きで書き足しています。簡単なよい方法がありましたら教えていただきたいです。宜しくお願いします。

  • 選択クエリで実行結果を非表示にできますか?

    自分がやろうとしていること自体が間違っているかもしれないのですが・・ Access2000で販売管理を作っています。請求書を発行する開始日付と終了日付を入力させる日付入力フォームがあります。この日付を元に売上TBから日付範囲内を抽出する選択クエリを作っています。(クエリの抽出条件にBetweenを使っています)。 そして請求書フォームでデータ表示させようと作っています。 これらを、日付入力フォームにあるコマンドボタンのクリックイベントで Docmd.OpenQuery "Q売上" ’日付範囲内の売上データ抽出クエリ Docmd.OpenForm "請求書" とすると請求書フォームにはデータが表示されるのですが、背面にQ売上の実行結果が表示されています。 この実行結果を表示させないようにはできないのでしょうか?(選択クエリとはOpen=実行でしょうか) ちなみに請求書フォームのレコードソースにQ売上を書こうとしましたが、抽出条件の日付が日付入力フォームなので記述方法がわかりません。 ややこしい質問で申し訳ございませんが宜しくお願い致します。

  • accessの期間集計が特定日付以降できない

    お世話様になります。 まだmdbファイルの時代のaccessのフォームを使って、期間の売り上げ集計をしています。 具体的には 開始日 **/**/** 終了日 **/**/** という二つのテキストボックスを設けて**部分に年月日を入力し、その期間の売り上げをサブフォーム上に表示するというものです。 これまでは、まったく問題なく動作していたのですが、 終了日のテキストボックスに、13/04/18、つまり、2013年4月18日以降の日付を入れると、 「エラー番号 3420」のマクロエラーが発生し、集計用のマクロに設定した再クエリが停止してしまいます。 2013年4月17日以前の日付ならば、まったく問題なく動くため、原因が突き止められません。 ここまで来て、いよいよ会社実務にも支障が出始め、困り果てて、質問させていただきました。 実は、accessでDBを作っていたのは既に何年も前で、今はただの利用者になっており、質問の仕方さえよくわからなくなっておりますが、ヒントになるようなことがありましたら教えていただければありがたいです。 どうぞ、よろしくお願いいたします。

専門家に質問してみよう