- ベストアンサー
Accessデータベース
Accessで過去の天気をデータベース化したのですが、 年、月、日付などを選択して検索できるよう何かできないでしょうか? データベースの内容としては 日付、9時、12時、15時、最高気温、最低気温の6項目です。 9時、12時、15時の情報としてはその時間帯の天気情報が書かれています。(例.晴れ、くもり、雨、雪、雷)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1です > →フォーム等から年、月をタブで選択して検索できるようにしたい。 > →これを3つのうちどれかが一致すればそのデータを表示するように > したい。 記載しているイメージが判らないところが多々あるのでですが、例えばで、記載していきますね フォームに、 ctl開始年、ctl開始月、ctl終了年、ctl終了月 ctl条件_9時、ctl条件_12時、ctl条件_15時 の抽出条件用のコントロールを配置 ctl開始年、ctl終了年は、西暦4桁数値または空白 ctl開始月、ctl終了月は、1~12の数値または空白 を入力 ctl条件_9時、ctl条件_12時、ctl条件_15時は、それぞれ > 例.晴れ、くもり、雨、雪、雷 が入力される予定 で、抽出開始用のコマンドボタンを配置 そのVBAに、クリック時のイベントに「Me.Requery」を記載 で、クエリの作成に戻って、 (ここは、クエリの作成で見えるSQLビューに切り替えて、下記のSelectから;までを貼り付け、[フォーム名]、[テーブル名]は、現状に合わせて書き換えてから、デザインビューに切り替えてみてください) Select [テーブル名].* From [テーブル名] Where (日付 >= DateSerial(Nz([Forms]![フォーム名]![ctl開始年],1900),Nz([Forms]![フォーム名]![ctl開始月],1),1) And 日付 <= DateSerial(Nz([Forms]![フォーム名]![ctl終了年],Year(Date())),Nz([Forms]![フォーム名]![ctl終了月],12)+1,0)) AND ([9時] = [Forms]![フォーム名]![Ctl条件_9時] OR [12時] = [Forms]![フォーム1]![Ctl条件_12時] OR [15時] = [Forms]![フォーム1]![Ctl条件_15時]) ORDER BY 気象.日付; と、いう感じ で、先のフォーム名を上記のクエリ名をレコードソースにして、帳票フォームあたりで、体裁を整える感じかな? 大体以上だけど、記載している意味わかるかな?
その他の回答 (4)
- Dxak
- ベストアンサー率34% (510/1465)
#1です > 年、月、天候などデータを入力もしくは選択するなどして > 該当するデータを表示するようにしたいのですが、 > どのようにしたらできますでしょうか? クエリベースに、フォームを作れば、何とでも出来るよ フォーム上に、入力もしくは選択の作りこみ次第になるけど・・・ 日付から、Year関数で年を、Month関数で月を、出せば条件と出来るし、 9時、12時、15時のところに、or条件で、天候を条件とすれば、それも可能 まずは、クエリを作りこんでから、フォームを作りこむって感じなんだけど・・・実際、クエリのイメージが最初だと難しいから、フォームからどういう条件を入力するか?作ってみるのが良いかな? それが出来たら、その条件を具体的に出して、クエリをどう作成するか? 質問出してみると言う感じで・・・
お礼
迅速丁寧な返答ありがとうございます。 少し自分でトライしてみます。
補足
クエリを作成してみました。 フィールド:"日時"、"9時"、"12時"、"15時"、"最高気温"、"最低気温" 全てのフィールドを表示 日付のフィールドで抽出条件を範囲指定して表示できるようにする。 9時、12時、15時のフィールドに天候情報を入力することで 指定期間での天候が一致した情報を表示する。 現在の抽出条件 "日時"→>#2005/04/30# And <#2005/06/01# このようにある期間のデータだけを抽出する。 更に9時、12時、15時における天候データで指定された条件 検索をできるようにしたい(AND検索、OR検索) 改善したい点 日付の範囲指定を変更する際はクエリ書き直す必要がある。 →フォーム等から年、月をタブで選択して検索できるようにしたい。 天候データの検索でいずれかが、条件に一致するデータを表示したい。 (OR検索?) "9時"、"12時"、"15時"全てに"晴れ"と入力しただけでは全てが一致したものが表示される。 →これを3つのうちどれかが一致すればそのデータを表示するようにしたい。 どうすればできるでしょうか?
テーブルで検索するなら検索機能を、また条件を満たすレコードを抽出するなら選択フィルタやフォームフィルタの機能をお使いください。 選択クエリを使って、条件に合うレコードを抽出することもできます。 これらはどんな入門書にも説明があります。今後のためにも、手元に1冊用意されたらどうでしょうか。
お礼
ありがとうございます。 そうですね、何かいい書籍があればいいのですけども
- 007MUKADE
- ベストアンサー率41% (286/694)
可能ですが・・・ すでに WEB上で 公開されてまして 全国各地の 過去データを最近のものなら 10分間隔で 検索できます。 以前に自分の居住地付近のDBを造ったのですが さすがに気象庁は 強力ですので 3年前よりこれをいつも使ってます。 いいものはドンドン利用しましょう。
- Dxak
- ベストアンサー率34% (510/1465)
> 年、月、日付などを選択して検索できるよう何かできないでしょうか? 「出来るよ」って、終わるよ 具体的に、どうしたい?って、記載していかないと、質問が漠然としてるけど?
補足
質問が漠然としていて、すいません。 どのような感じでできるのかわからないですが、 年、月、天候などデータを入力もしくは選択するなどして 該当するデータを表示するようにしたいのですが、 どのようにしたらできますでしょうか?
お礼
解説、ありがとうございます。 Accessは利用したことがないので全くわからないですね。 フォームの作り方?、クエリのSQLビュー? SQL文は少しだけなら分かりますが、苦手です。