• 締切済み

ACCESS フォームで日付を入力して金額を表示

ACCESS2010初心者です。 フォームで日付を入力して、 その日の合計仕入金額を表示させたいのですが、 何をどうしたらいいのかが分かりません・・。 一応、合計仕入金額を出すクエリはできています。 勉強をしながら作成していて、 本当に初心者で申し訳ないですが・・ご回答頂けると幸いです。 よろしくお願い致します。

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/625)
回答No.6

同じフォーム上に検索キーと検索結果を表示するには VBAが必要です。 従って今回は【メニュー】フォーム上には日付のみとし 結果はクエリー【集計】で表示することにします 情報の不足部分を補足してお答えします。 1.日付を指定するフォーム名を【メニュー】 2.日付のボックス名を[日付] 3.仕入金額のテーブルを【仕入履歴】 4.これには、[仕入日][仕入金額]のフィールドが含まれている 以下の【】内はマウス操作だけで作業が進みます。 【集計】クエリーの作成 1.【作成】⇒【クエリウィザード】⇒【選択クエリウィザード】  ⇒【OK】⇒【仕入履歴】⇒【仕入日】⇒【仕入金額】  ⇒【仕入日】⇒【>】⇒【仕入金額】⇒【>】⇒【次へ】  ⇒【集計する】⇒【集計のオプション】⇒【仕入金額合計】  ⇒【次へ】⇒【完了】 以上で、出来た【仕入履歴クエリ】を開くと 日付毎に集計された、一覧表になります。 次に、この一覧からフォームに入力された日付に絞り込みます。 2.【仕入履歴クエリを右クリック】⇒【デザインビュー】  ⇒【仕入日の抽出条件行で右クリック】⇒【ビルト】  ⇒【アクセスのファイル名の左端の+】  ⇒【フォームの左端+】⇒【すべてのフォームの左端+】⇒【メニュー】  ⇒【日付をダブルクリック】 次にメニューフォーム上に【仕入履歴クエリを開くボタンを】を配置します。 【メニューを右クリック】⇒【デザインビュー】  ⇒【ボタン】⇒【配置位置】⇒【その他】⇒【クエリの実行】⇒【次へ】  ⇒【次へ】⇒【完了】 以上で完成ですが、日付ボックスの書式を日付にすると、 実行時マウスポインタを近づけるとカレンダアイコンが表示され、 カレンダ入力になります。  【メニューを右クリック】⇒【デザインビュー】  【日付ボックス】⇒【書式タグ】⇒【書式欄の右端の▼日付】⇒【日付】    

すると、全ての回答が全文表示されます。
回答No.5

極力 VBA 無しで考えています。 お手数ですが、以下の様にしてください。 空のデータベースを選択し、ファイル名は適当につけます。 新規テーブル画面は閉じます。 リボンの外部データタブからAccessを選択。 インポートのファイル名は右の「参照(R)」から選択。 (下の選択肢は、現在のデータベースに・・・を選択) ファイルの選択ウィンドウで今までのファイルを選択。 OKで次に進みます。 インポートウィザードに従って テーブル・クエリまではすべて選択。 フォーム・レポート・モジュールは何も選択しません。 これでインポートが終了しますので フォームを新規作成して前回回答#2を見つつ試してください。

すると、全ての回答が全文表示されます。
回答No.4

うまくできない・・ では何もわかりません。 どうやって、どうなったか詳しく状況を説明してください。 てーぶる・・うんぬんはそちらの実際の名前が不明だったので 仮にという意味ですので以降は実際の名前でやり取りしましょう。 差しさわりがあるようであれば変更しても構いません。 テーブル名= △ フィールド名=△、データ型=△ 以下フィールド名とデータ型の列挙 △を埋めてください。

HukurouXX
質問者

お礼

回答ありがとうございます。 申し訳ないです。 テーブル名= てーぶる フィールド名=仕入金額 データ型=通貨型 フィールド名=日付   データ型=日付/時刻型 クエリ名= てすと★ ------------------------------------------ SELECT Sum([てーぶる].仕入金額) AS 仕入金額の合計 FROM てーぶる GROUP BY [てーぶる].日付 HAVING ((([てーぶる].日付)=[Forms]![在庫調達チーム]![日付選択])); ------------------------------------------ 仕入金額のコントロールソースに、 =iif(isnull([日付選択]),0,nz(DSum("仕入金額","てーぶる","日付=#" & [日付選択] & "#"),0)) を入力するとエラーが以下のように表示されます。 ------------------------------------------ この関数をコンパイルするときにエラーが発生しました。 Visual Basic モジュールに構文エラーがあります。 コードをチェックし、再コンパイルしてください。 ------------------------------------------ 何度もすみませんが、よろしくお願い致します。

すると、全ての回答が全文表示されます。
  • kimic_3
  • ベストアンサー率28% (20/69)
回答No.3

#1です。 表示ボタンを右クリックし、 コードビルダーで開くと、「表示ボタン」をクリックしたときに発生するイベント (表示ボタン_Click) が表示されます。 この中に先のコードをコピーすれば、 表示ボタンがクリックされたときに、コードが実行されます。

HukurouXX
質問者

お礼

ありがとうございます。 コードを追加すると、 ------------------------------------------ 指定した式の構文が正しくありません。 たとえば、演算子がないときにオペランドを指定しています。 ------------------------------------------ とエラーがでてしまいます・・・。

すると、全ての回答が全文表示されます。
回答No.2

大元のテーブル名を「てーぶる」、 「てーぶる」の合計したいフィールド名を「仕入金額」、 合計条件に使用したいフィールド名を「日付」とした場合。 上のコントロール名を日付から日付選択にします。 名前変更はプロパティの「その他」タブにあります。 コントロールの書式を、yyyy/m/d とします。 (日付選択カレンダーがフォームビューで表示されるようになります) 下のコントロール(名前は仕入金額?)のコントロールソースを データタブから =iif(isnull([日付選択]),0,nz(DSum("仕入金額","てーぶる","日付=#" & [日付選択] & "#"),0)) にしてください。 フォームビューに切り替えて、 日付選択欄に手入力か、右に出ている日付選択カレンダーから日付を選択し Enter キーを押すと合計金額が現れます。 なお、日付選択が未入力、該当の日付でデータが無い場合は、ゼロ を表示するようにしています。 これで求められない場合は、合計仕入金額を出すクエリのSQL文を提示してください。 (SQL文はクエリのデザインビュー上で右クリックから切り替えられます)

HukurouXX
質問者

お礼

丁寧な回答ありがとうございます。 とても助かります。 私が何か間違っているか不備があるかで、 うまくできませんでした。 何度も申し訳ないです・・。 クエリのSQL文は以下です。 SELECT Sum([てーぶる].仕入金額) AS 仕入金額の合計 FROM てーぶる GROUP BY [てーぶる].日付 HAVING ((([てーぶる].日付)="Forms]![在庫調達チーム]![日付選択]"));

すると、全ての回答が全文表示されます。
  • kimic_3
  • ベストアンサー率28% (20/69)
回答No.1

合計仕入れ金額を算出するクエリをデザインモードで開いて、 仕入日付の抽出条件欄で、右クリック→ビルド mdb(accdb)→Forms→読み込まれたフォーム→該当フォーム(Form1かな?)で、 日付のコントロール(txt日付)をダブルクリック 上枠に、テキストボックス(txt日付)が表示されるので、そのままOK。 これで、入力した日付で抽出可能なクエリが完成 そのクエリは、テーブル作成クエリですか? テーブル作成クエリなら、クエリ実行でテーブルが出来ているので、そのテーブルのフィールドを表示すればよい。 ---- 表示ボタン_Clickに Docmd.Setwarning false DoCmd.OpenQuery "クエリ" Docmd.SetWarning true txt仕入額 = Dsum("仕入額","作成されたテーブル名") --- 流れはこんな感じですが、いかがでしょうか。

HukurouXX
質問者

お礼

分かりやすい回答ありがとうございます。 とても助かります。 質問なのですが、 以下の文は何処に入力したらいいのでしょうか? Docmd.Setwarning false DoCmd.OpenQuery "クエリ" Docmd.SetWarning true txt仕入額 = Dsum("仕入額","作成されたテーブル名")

すると、全ての回答が全文表示されます。

関連するQ&A