Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2016)
サブフォームの表示が#エラーになってしまう。
投稿日時: 17/06/23 00:27:47
投稿者: kts_1334

お世話になります。Access超初心者です。
過去に請求書入力フォームをAccess97でつくりました。Access2016に変わったので、そのまま使用していました。メインフォームにサブフォームがあり、サブフォームは、クエリで数量*単価=税抜金額と税抜金額を計算さものを表示させています。最近になって、税抜金額と消費税が"#エラー"と表示される様になりました。
クエリは、ちゃんと数字表示しています原因及び対策方法をご教示お願いします。

回答
投稿日時: 17/06/23 09:36:43
投稿者: sk

引用:
メインフォームにサブフォームがあり、サブフォームは、
クエリで数量*単価=税抜金額と税抜金額を計算さものを表示させています。
最近になって、税抜金額と消費税が"#エラー"と表示される様になりました。

サブフォームに表示されている全てのレコードにおいて発生しているのか、
一部のレコードでのみ発生しているのか、どちらなのでしょうか。
 
もし後者である場合、それらのレコードの[数量]と[単価]の値は
具体的にどのような数値なのでしょうか。
 
引用:
クエリは、ちゃんと数字表示しています

サブフォームの詳細セクション上に配置されているコントロールのうち、
[税抜金額]及び[消費税]を表示するためのテキストボックスの
[コントロールソース]プロパティには、レコードソースであるクエリの
各フィールド名がそのまま設定されているのでしょうか。
(連結テキストボックスであることは間違いないのか、
 それとも実際には何らかの式が設定された演算テキストボックスであるのか)

投稿日時: 17/07/19 16:50:19
投稿者: kts_1334

返信遅くなり大変申し訳ございませんでした。
心苦しいですが、継続してご教示の程よろしくお願い致します。
 

クエリで金額と消費税を計算(計算式↑部)しています。					
クエリ単体では正常に表示されます。また、サブフォーム単体でも正常表示されます。
		
						金額: Int(([単価]*[数量])+0.5)	
						↑  消費税: Int(([金額]*0.08)+0.5)
						↑	↑
得意先名 日付	注文番号 品名	 数量	単価	金額	消費税
ABC商事	 2017/7/19	AAAA	 BBBBB	 100	10	1000	80
BCD工業	 2017/7/20	CCCC	 DDDDD	 50	100	5000	400
							
							
メインフォームの中に表示させているサブフォームだけ下記の様にエラー表示します。							
得意先名 日付	注文番号 品名	 数量	単価	金額	消費税
ABC商事	 2017/7/19	AAAA	 BBBBB	 100	10	#エラー	#エラー
BCD工業	 2017/7/20	CCCC	 DDDDD	 50	100	#エラー	#エラー

回答
投稿日時: 17/07/21 16:19:40
投稿者: Suzu

金額: Int(([単価]*[数量])+0.5)
消費税: Int(([金額]*0.08)+0.5)
 
共にクエリ上で計算しているという事なので。。
 
もしかして、金額を算出する為の【単価】、【数量】も演算フィールドになっているという事は無いですよね。
 
無い前提で以下。
 
演算フィールドでの式を
金額: Int(([テーブル/クエリ名].[単価]*[テーブル/クエリ名].[数量])+0.5)
消費税: Int((Int(([テーブル/クエリ名].[単価]*[テーブル/クエリ名].[数量])+0.5)*0.08)+0.5)
 
としてください。

投稿日時: 17/07/25 09:56:36
投稿者: kts_1334

ありがとうございました。
ご指摘いただいた内容で解決いたしました。多謝です。