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をつけてみるなど、いろいろ試してもうまくいきません。
どなたかアドバイスをいただけるとありがたいです。
どうぞよろしくお願い致します。
お礼
結局、元のものや他の似たものと比べてみて、「期」をそのまま2桁になるようにしたらそのままちゃんと番号が増えるようになりました。 ヒントをくださってありがとうございました!
補足
回答ありがとうございます。確かに元のフォームの「期」の部分は現在2桁から1桁になっています。そのせいですね? 具体的にはMid([工事番号],2,2)のところをどう直せばいいのでしょうか?素人で申し訳ないのですが、お教えください。