• ベストアンサー

Accessの文字型でも数学関数が使えるのはなぜ

Accessのテーブルにテキスト型のフィールドがあります。 そのフィールドに数値を入力し、SELECT で SUM を求めるときちんと求められるのですが、なぜテキスト型にもかかわらず合計が求まるのでしょうか。 テーブル1 フィールド名 ->TEST1 タイプ->テキスト型 -------- TEST1 ------- 1 2 3 4 5 SELECT SUM(TEST1) FROM テーブル1 答え 15

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

型の異なるフィールドを指定しても何とか型をあわせて計算できないものかどうか 試みてくれます こういうのを暗黙の型変換と呼んでいます いろんな処理系で昔からある機能です プログラミングなどではこれに頼ったコードはあまりよくないコードだ 読みやすいコードにするには出来るだけ明示的に型変換する方がいいとされています でも日付時刻型のフィールドからある特定の月だけ抽出するのに Like "2007/12/*"  (日付時刻型フィールドがテキスト型に暗黙の型変換されて比較されます) なんて便利なことが出来るものでもあるんですよ

その他の回答 (1)

noname#140971
noname#140971
回答No.1

Access の仕様だからでしょう。 SUM([DISTINCT] x)は、数値型の列に対してのみ使用することができます。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ こういう厳格なSQL言語もあります。 が、Access には、こういう厳格さはありません。 Private Sub コマンド0_Click()   Dim A As String   Dim B As String   Dim C As Integer   Dim D As Integer      A = "1": C = A   B = "2": D = B   Debug.Print C + D End Sub [イミディエイト] 3 VBAでも、かなり緩いです。 それと、同じだと推察します。

obone
質問者

お礼

ありがとうございました。 結果あいまいさは良いのか悪いのかよく分かりませんが。

関連するQ&A