- ベストアンサー
Accessの文字型でも数学関数が使えるのはなぜ
Accessのテーブルにテキスト型のフィールドがあります。 そのフィールドに数値を入力し、SELECT で SUM を求めるときちんと求められるのですが、なぜテキスト型にもかかわらず合計が求まるのでしょうか。 テーブル1 フィールド名 ->TEST1 タイプ->テキスト型 -------- TEST1 ------- 1 2 3 4 5 SELECT SUM(TEST1) FROM テーブル1 答え 15
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
型の異なるフィールドを指定しても何とか型をあわせて計算できないものかどうか 試みてくれます こういうのを暗黙の型変換と呼んでいます いろんな処理系で昔からある機能です プログラミングなどではこれに頼ったコードはあまりよくないコードだ 読みやすいコードにするには出来るだけ明示的に型変換する方がいいとされています でも日付時刻型のフィールドからある特定の月だけ抽出するのに Like "2007/12/*" (日付時刻型フィールドがテキスト型に暗黙の型変換されて比較されます) なんて便利なことが出来るものでもあるんですよ
その他の回答 (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でも、かなり緩いです。 それと、同じだと推察します。
お礼
ありがとうございました。 結果あいまいさは良いのか悪いのかよく分かりませんが。