• ベストアンサー

ACCESS Switch関数の文字数なんですが・・・?

ACCESSでタイピングの入力データを作成しているのですが、 Switch関数で [式1]>=300,"Good",~[式1]<21,"E-"までを入力したいのですが、E+,E,E- の三つを入れると「式が複雑すぎます」と出るのですが、Switch関数には文字数の限度があるのでしょうか。 他にいい関数はないでしょか?の結果がみつかりませんでした

  • hntpw
  • お礼率25% (2/8)

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

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

switch関数の制限を越えたのですね 制限内でネスとしてやればいいのでは 式5: Switch( [式4]>=277,"Good !", [式4]>=260,"S", [式4]>=243,"A+", [式4]>=226,"A", [式4]>=209,"A-", [式4]>=192,"B+", [式4]>=175,"B", [式4]>=158,"B-", [式4]>=141,"C+", [式4]>=124,"C", [式4]>=107,"C-", [式4]>=90,"D+", [式4]>=73,"D", [式4]<73, switch( [式4]>=xx,"D-", [式4]>=xx,"E+", [式4]>=xx,"E", [式4]>=xx,"E-" ) )

hntpw
質問者

お礼

ありがとうございます。 何日も悩んでいたので謎が解けて 助かりました。 お世話になりました。

その他の回答 (1)

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

E+,E,E-、goodの4組を入力したいということですか? 文字数の制限は当然ありますが、そんなに少なくありませんよ 何か他の原因では

hntpw
質問者

補足

説明が悪くてスミマセン 式5: Switch( [式4]>=277,"Good !", [式4]>=260,"S", [式4]>=243,"A+", [式4]>=226,"A", [式4]>=209,"A-", [式4]>=192,"B+", [式4]>=175,"B", [式4]>=158,"B-", [式4]>=141,"C+", [式4]>=124,"C", [式4]>=107,"C-", [式4]>=90,"D+", [式4]>=73,"D", [式4]<56,"D-") "D-"の後ろにE+,E,E-で終わりたいのですが、「式が複雑すぎます」とエラーが出るため"D-"で終わってます。

関連するQ&A

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

    複数のフィールドに入力されている文字列(数値や文字)の文字数をカウントし、そのレコードごとの合計を1回の更新クエリで算出する方法があれば教えてください。 =========================================================== ☆1つのレコードにA~Eのフィールドがあり、全角・半角の文字および英数字のデータが混在しています。(データの入っていない場合は「null」となる) (例) No  [A]       [B]     [C]       [D]       [E] 1  東京都   港区   ○○1丁目  1-2-3   ●×マンション101 2  神奈川県  横浜市  ○○○町   10-10   △△ビル10F  3    〃      〃     〃       〃        〃    =========================================================== (1) これらの各フィールドの文字数を「LEN関数」を使って、新たなフィールドF~Jに文字数を表示する (2) そして、上記のF~Jの文字数を「SUM関数」を使って、フィールドKへ合計数を表示しています。 (例) No  [F]  [G]   [H]  [I]  [J]   [K] 1   3   2   5   5  10    25 2   4   3   4   5   7     23     =========================================================== 現在は、上記のように、各フィールドの文字数を出してから合計数を計算していますが、 この合計数[K]の値を、フィールドF~Jを作成しなくても一度で計算できるような関数式があれば教えてください。 私は、SQLが書けないので、フィールド欄へ関数式を入力しておりますが、 関数だけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、宜しくお願い致します。

  • Access2003 文字数の合計について

    複数のフィールドに入力されている文字列(数値や文字)の文字数をカウントし, そのレコードごとの文字数合計を出したいのですが、「エラー」になってしまい うまくできないので、アドバイスを頂きたいと存じます。 ========================================================================= ☆1つのレコードA~Eのフィールドがあり、全角・半角の文字および英数字のデータが混在しています。  なお、データの入っていない空欄がところどころにあります。 [手順1] まず、フィールド内にある空白を除くためReplace関数を使って置換するため フィールドへ以下の式を入力します。 B1: Replace([B]," ", "") D1: Replace([D]," ", "") (例) [ID]  [A]         [B]       [C]       [D]            [E]     1  東京都   港区 ○○1丁目  1-2-3   ●×マンション 101  ○○様方 2  神奈川県  横浜市○○○町   10-10    NULL           NULL 3  千葉県   千葉市 ○○○町  NULL    NULL            ○○様方 ========================================================================= [手順2] 空白を取り除いたフィールドの文字数をカウントするためLen関数を使ってカウントするため フィールドへ以下の式を入力します。 文字数: Len('' & [A] & [B] & [C] & [D] & [E]) (例) [ID]  [A]         [B1]       [C]       [D1]           [E]     [文字数]   1  東京都   港区○○1丁目   1-2-3   ●×マンション101   ○○様方     29 2  神奈川県  横浜市○○○町   10-10    NULL           NULL      16 3  千葉県   千葉市○○○町   NULL    NULL           ○○様方     14 ========================================================================= [手順1]~[手順2]を行い、文字数フィールドに合計値が表示されるようにしたいのですが、 [手順1]のクエリ実行でフィールド[D]の空欄に「#エラー」が表示されてしまい、 以下のとおり、[手順2]で文字数を出すことができませんでした。 (例) [ID]  [A]         [B1]       [C]       [D1]           [E]     [文字数]   1  東京都   港区○○1丁目   1-2-3   ●×マンション101  ○○様方     29 2  神奈川県  横浜市○○○町   10-10    #エラー        #エラー     #エラー 3  千葉県   千葉市○○○町   NULL    #エラー        ○○様方     #エラー ========================================================================= 上記のようなエラーを出さずに、文字数合計をしたいので、アドバイスをいただきたいと存知ます。 よろしくお願いいたします。

  • 【エクセル】特定の文字数を数える関数を教えて下さい

    お世話になります。エクセルの関数について質問です。 複数のセル内に入力されている特定の文字数を数えたいのですが 何か関数式はありますか?

  • Accessでの質問

    会社でAccessを使用して入力フォームを作成しております。未だ初心者故簡単なことが分かりません。組み込み関数Switchを使用して計算し、計算された数字はフォームには表示されますが、テーブルには表示されずデータとして使えません。どのようにしたらテーブルに表示されるのでしょうか。 また、数値で入力した際文字数の限定は出来ませんか。例えば5文字以上、以外もエラーとなり5文字のみ入力可としたいのです。 宜しくお願いいたします。

  • Accessでの文字数

    テーブルを作成し、データー型をテキストにすると初期設定は50文字?だと思いますが、これを1000文字位入力したいときはどうしたらよいのでしょうか?

  • Access97のクエリ内でのStrConv関数について

    Access97でクエリ内で文字の長さを判定しようとして いたのですが、Strconv関数の妙な挙動に戸惑っています。 barというテキスト型のフィールドをもつfooという テーブルを定義して、"1","22","333","4444"という 4つのレコードを作成します。 そして下記のようなクエリを作成し実行します。 SELECT foo.bar, LenB(StrConv([foo].[bar],128)) AS 式1, StrConv(StrConv([foo].[bar],128),64) AS 式2 FROM foo; すると、結果は下記のようになってしまいます。 bar |式1|式2 ------------ 1 | 0| 22 | 2|22 333 | 2|? 4444| 4|? 式1は奇数Byteの結果が、式2は"22"以外の結果が 正しくありません。 このようになってしまう理由と、対処方法を教えて ください。 環境は Windows2000ProSP4, Access97SR2 です。 ちなみにAccess2000で実行すると、正しい結果が 表示されます。

  • エクセルで、数字の文字数を揃える関数

    お世話になります。 xp/エクセル2003使用です。 口座引き落としのデータ作成作業を行なっています。 請求金額の文字数を半角10文字に揃える 作業をしています。 (例) 【元のデータ】   【半角10文字のデータ】 112350       ####112350  23100       #####23100   8400       ######8400 元のデータから半角10文字のデータを作成する作業を 手作業で行なっているのですが、 エクセルで使える関数はありますでしょうか? なお、上記の例の#の代わりに0(ゼロ)は使用しない形でお願いします。 (エクセルの書式設定で文字列は今回使いたくないので) また、マクロも使わない方法を探しています。 よろしくお願いします。

  • 【ACCESS】文字列を抜き出したい

    初心者ですが。分かる方お願いいたします(__)(至急ですみません) 会社の専用システムからCSVデータをダウンロードしました。 その時点で、「商品コード」のフィールドが「"=0123456"」 のようなってしまっています。(「0123456」のように数字だけになっていてほしい) CSVの段階で、文字列関数を使用して数字だけにしてしまえばいいのですが、何万件とデータが重く、ファイルも複数あることから時間がかかってしまいます。 そこで、ACCESSにデータをインポートして加工しようとしましたが、どのようにすれば数字だけ抜き取ることができるでしょうか。 Right関数、left関数も考えましたが、商品コードの文字数が一定していないためできません。 インポートした時点で商品コードのフィールドがテキスト型にされていたので、数値型にすれば数字だけになるかな?と思ってやってみましたがデータがすべて失われてしまいました・・。 良い知恵をお貸しください。 どうぞよろしくお願いいたします。 それをACCESSにインポートしてテーブルを作成致しました。

  • アクセスのクエリに「Find関数」はない?

    テーブルに「あいうえお」と入力し、 FIND関数: find("う",[テーブル]![フィールド],1) と入力し、データシートビューで表示しようとすると 『式に未定義関数 <'find'> があります。』 とエラーになります。 確かに、ビルド→関数→組み込み関数の中に「find」はないし、 入力し終わっても、「F」の部分が大文字になりません。 ということは「find」は使えないのでしょうか? となると、 データの中の文字の位置を調べたい時はどうすればいいでしょうか? よろしくお願いします。

  • ACCESSでの文字数カウント

    EXCELでのLEN関数のようにACCESSで一つのフィールドにある文字列の文字数をとなりのフィールドに表示させることは可能なのでしょうか? ご存知のかたがいらっしゃいましたらご教授お願い致します。

専門家に質問してみよう