• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2003複数フィールドの文字数合計)

Access2003複数フィールドの文字数合計

このQ&Aのポイント
  • Access2003で複数のフィールドに入力されている文字列の文字数をカウントし、そのレコードごとの合計を一度の更新クエリで算出する方法について教えてください。
  • 現在は各フィールドの文字数を計算してから合計数を計算していますが、フィールドを作成せずに一度で合計数を計算する方法があれば教えてください。
  • SQLが書けないので、関数式をフィールド欄に入力している状況です。関数だけではできない場合はSQLで教えていただけると助かります。

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.5

[A] ~ [E] すべて Null の場合にも ゼロが表示されるおまじないを付加。 K: Len('' & [A] & [B] & [C] & [D] & [E])

KTN1123
質問者

お礼

早々のご回答をくださり ありがとうございました。 希望通りの結果を得ることができました。 ゼロが表示される「おまじない」を試したところ、 本当に「0」が表示され感動しました! 「"」を加えるのですね。大変勉強になりました(*^_^*)

その他の回答 (5)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

追加ですが。 Nz関数について。 >(データの入っていない場合は「null」となる) ということなので、フィールドにデータが無い場合には データが返されないのでNz関数を使って0を返します。 したがって、Nz関数を使っていない場合にはどこかに Nullのフィールドがあるとデータが合計がNullで 返ってきます。

KTN1123
質問者

お礼

piroin654様 たくさんのご回答をいただき、ありがとうございました。 教えていただいたSQL文を使ってみたところ、希望通りの結果がえられました。 また、Nz関数のご説明までいただき、とても分かりやすかったです。 大変勉強になりました(*^_^*)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

#1のテーブル名がおかしくなっていました。 UPDATE テーブル名 SET テーブル名.合計 = Len(Nz([A]))+Len(Nz([B]))+Len(Nz([C]))+Len(Nz([D]))+Len(Nz([E]));

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

単純だと K:LEN([A])+LEN([B])+LEN([C])+LEN([D])+LEN([E]) 先に連結すれば、この通り K:LEN([A]&[B]&[C]&[D]&[E])

KTN1123
質問者

お礼

早々のご回答をくださり ありがとうございました。 希望通りの結果を得ることができました。 LEN関数を「&」でつなぐと、式がスッキリして良いですね。 大変勉強になりました(*^_^*)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

追記: テーブルの合計のフィールドは数値型です。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

テーブルに合計というフィールドがあるものとします。 以下の更新クエリで合計欄にデータが格納されます。 UPDATE Tdata SET テーブル名.合計 = Len(Nz([A]))+Len(Nz([B]))+Len(Nz([C]))+Len(Nz([D]))+Len(Nz([E]));

関連するQ&A

専門家に質問してみよう