Accessでの数字のデータ型
お世話になります。Access初心者です。
Access2003 OS:WindowsXP
既存のオーダー入力DBに変更を加えているのですが、行き詰まってしまい質問させていただきました。
現在USDからYENへのレートが変わる度に価格表を差し替えていますが、
レートの部分を別のテーブルで期間指定して管理できないかと考えています。
構成:(関連する部分のみ)
[テーブル]
tbl_注文(注文番号*,日付)*は主キー
tbl_注文Sub(注文番号,ID,数量,変更後価格USD,変更後価格JPY)※注文番号でtbl_注文とリレーションシップを組んでいる
tbl_価格表(ID,型番,USD,JPY,RateID)
tbl_Rate(RateID,Rate,開始日,終了日)※今回新たに作成
[クエリ]
qry_注文Sub
現在の構成:
tbl_注文⇒tbl_注文Sub-tbl価格表
※tbl_注文Subとtbl_価格表はIDで連結させている
表示項目:
注文番号,ID,数量,USD,JPY,USDSubTotal:IIf([Currency]=2,IIf([変更後価格USD]>0,[変更後価格USD]*[Qty],[USD]*[Qty]),0),JPYSubTotal:IIf([Currency]=1,IIf([変更後価格JPY]>0,CCur([変更後価格JPY]*[Qty]),IIf(IsNumeric(Format$([JPY],"数値")),CCur([JPY]*[Qty]),CCur(0))),CCur(0))
考えている変更:
qry_Rate
Rateを入力(日付のコントロールはとりあえず後回しに)
qry
qry_注文Sub
tbl_注文⇒tbl_注文Sub-tbl価格表-tbl_Rate
表示項目:
注文番号,ID,数量,USD,JPY:IIf(IsNumeric(Format$([USD],"数値")),[USD]*[Rate],0),USDSubTotal:IIf([Currency]=2,IIf([変更後価格USD]>0,[変更後価格USD]*[Qty],[USD]*[Qty]),0),JPYSubTotal:IIf([Currency]=1,IIf([変更後価格JPY]>0,CCur([変更後価格JPY]*[Qty]),IIf(IsNumeric(Format$([JPY],"数値")),CCur([JPY]*[Qty]),CCur(0))),CCur(0))
※USDはNAの場合もあり、フォーマットはテキストです。
※Rateは数値型です。
上記の変更で、qry上では正しく計算が出ますが、formになると表示されません。
Subフォームで型番を選択して数量を入力すると価格*数量が表示される設定ですが、そもそもSubフォームに何も表示されないようになってしまいます。
仮に[Rate]ではなく、[USD]*120とすると、フォームも問題なく動きます。
何かデータ型の問題ではないかと推測しているのですが、
CCurをつけてみるなど、いろいろ試してもうまくいきません。
どなたかアドバイスをいただけるとありがたいです。
どうぞよろしくお願い致します。
お礼
早速のご回答ありがとうございます。 さて、頂いた構文を実行したところ、一発で希望通りの結果が得られました。 テーブル(クエリ)をjoinする場合、onする項目はandで複数設定可能なんですね。 恥ずかしながら、初めて知りました。 どうもありがとうございました。