プロが教えるわが家の防犯対策術!

はじめまして。
煮詰まってしまってどうすればいいかわからないのでよろしければ教えて下さい。

アクセスの

ID(オートナンバー型)|商品名(テキスト)|値段(通貨)
=============================

というテーブルをフォームにしたと仮定します。

コンボボックスを利用し、商品名をコンボボックス(値集合ソースで商品名と値段を選択)
に、値段を横にテキストボックス(通貨書式)で表示させています。
=[商品名1].[Column](1)

上記と同じ形を3つ作り最後にすべての値段を合計させる
テキストボックス(=[値段1]+[値段2]+[値段3])としようとしているのですが
1+1の計算が2ではなく、11になってしまいます。

文字として読み込んでいるようなのですが、
どこを変更すればいいのでしょうか?

どうかご教授よろしくお願いします

A 回答 (1件)

「Column」プロパティを使用して取得した値は、元のテーブルでの


データ型に関係なく、文字列扱いになってしまうようです。
このため、ご質問のように「1+1」が「2」ではなく「11」とテキスト連結に
なってしまったものと思います。

これは、恐らく「Column」の仕様によるもので、Accessの設定では
解決はできないと思われますので、後は「CCur」関数などを使用して、
意図的にデータを変換してやるしかないのではないでしょうか。

【案1】「値段x」テキストボックスで変換
「値段1」のデータを、合計欄以外のコントロールでも参照する場合は、
この案(=各テキストボックスで予め通貨型に戻しておく)をお勧めします。
(値段1などの欄でも、通貨型で表示:右寄せ・「\」あり)
※値段2、値段3も同様に変更することになります。

 現在:
  =[商品名1].[Column(1)]
 変更後:
  =CCur([商品名1].[Column(1)])


【案2】合計欄で変換
「値段1」等のデータを、合計欄以外で使用しない場合は、この案
(=合計欄で通貨型に変換する)の方が、修正箇所が少なくて済みます。
(値段1などの欄は、文字列として表示されます:左寄せ・「\」なし)

 現在:
  =[値段1]+[値段2]+[値段3]
 変更後:
  =CCur([値段1])+CCur([値段2])+CCur([値段3])
    • good
    • 0
この回答へのお礼

DexMachina様、御回答ありがとうございます。

アクセスの設定では解決できないのですね。
CCur関数を利用したところ、思い通りに計算することができました。
なぜなんだろうと3日くらいいろいろ試していたので
解決できてすっきりしました。ありがとうございます。

お礼日時:2009/06/03 13:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!