Page 612 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼アンダーバーを取り去り、数値にしたい ひらい 04/4/27(火) 19:02 ┗Re:アンダーバーを取り去り、数値にしたい かみちゃん 04/4/27(火) 20:09 ┗Re:アンダーバーを取り去り、数値にしたい ひらい 04/4/27(火) 20:29 ┗Re:アンダーバーを取り去り、数値にしたい かみちゃん 04/4/27(火) 21:20 ┗Re:アンダーバーを取り去り、数値にしたい ひらい 04/4/28(水) 9:44 ┗Re:Val 関数で Gin_II 04/4/28(水) 10:36 ┗Re:Val 関数で ひらい 04/4/28(水) 20:28 ┗Re:Val 関数で かみちゃん 04/4/28(水) 21:36 ┗Re:Val 関数で ひらい 04/5/1(土) 12:35 ┗Re:Val 関数で かみちゃん 04/5/1(土) 12:58 ┗Re:Val 関数で ひらい 04/5/1(土) 14:43 ┗Re:Val 関数で かみちゃん 04/5/1(土) 15:16 ┗Re:Val 関数で ひらい 04/5/1(土) 15:33 ─────────────────────────────────────── ■題名 : アンダーバーを取り去り、数値にしたい ■名前 : ひらい ■日付 : 04/4/27(火) 19:02 -------------------------------------------------------------------------
こんにちは。 あるテーブル中の複数の列に、「1000_」などと 末尾にアンダーバーのついた文字列が入っています。 本来金額なので、アンダーバーを取り去って、かつ数値列にしたいのです。 vbaで記述されたロジックをお持ちのかたがいらっしいましたら、 どなたかお教えくださいませんでしょうか? |
こんにちは。かみちゃん です。 > あるテーブル中の複数の列に、「1000_」などと > 末尾にアンダーバーのついた文字列が入っています。 > 本来金額なので、アンダーバーを取り去って、かつ数値列にしたいのです。 「フィールド1」フィールドに、「1000_」と入っているとします。 =Val(Replace([フィールド1],"_","")) で、できると思います。 VBAを使わなくても、クエリでできると思いますが・・・ |
かみちゃんさん 式に未定義関数Replaceがあります、と出ます。 どうすればよろしいでしょうか? |
こんにちは。かみちゃん です。 >式に未定義関数Replaceがあります、と出ます。 >どうすればよろしいでしょうか? AccessのVersionは200なのでしょうか? であれば、Access2000のバグです。以下のURLの対処策ではいかがでしょうか? http://www.f3.dion.ne.jp/~element/msaccess/AcTipsQryHowToUseNewFunctionsOnQuery.html |
▼かみちゃん さん: >AccessのVersionは200なのでしょうか? 97です。 URLを参考にやってみます。 |
>>AccessのVersionは200なのでしょうか? >97です。 Replace 関数は、Access2000からの関数ですので使えないですね。 ですが、今回のようなデータなら、Val 関数だけで大丈夫だと思います。 |
▼Gin_II さん: ありがとうございます。 ですが、式ビルダでVal関数を使ってみましたがうまくいきません。 クエリ式'Val([コード])'のコンパイルエラーが発生しました、と出ます。 なにがわるいのかわかりません。 お助けください。 |
こんにちは。かみちゃん です。 >ですが、式ビルダでVal関数を使ってみましたがうまくいきません。 >クエリ式'Val([コード])'のコンパイルエラーが発生しました、と出ます。 Access97で標準関数が使えない場合は、参照設定が「参照不可」になっているのが原因ということを聞いたことがあります。 http://www.ken3.org/backno/hosoku/e032/ 余談ですが、今回は「1000_」と末尾の文字を取り除いてということなので、Val関数だけでもいいですが、「100_000」などの場合は、100000ではなく、100となりますので、ご注意ください。 また、これも余談ですが、Access97でReplace関数は使えませんが、どうしても置換したいのであれば、下記URLが参考になるかと思います。 http://www.penhagi.net/access/tips/64_chikan2.htm |
▼かみちゃん さん: こんにちは。 >Access97で標準関数が使えない場合は、参照設定が「参照不可」 ご紹介いただいたURL通りにやってみました。 ところがチェックをはずすべき「参照不可」が見あたりません。 さしあたって100_000というようなケースはありませんので Val以外でも、Valと同じ結果が得られる関数があれば救われます。 ご存知でしたらどうかご教授ください。 それにしても標準関数が使えないなんて・・。 |
こんにちは。かみちゃん です。 >>Access97で標準関数が使えない場合は、参照設定が「参照不可」 >ご紹介いただいたURL通りにやってみました。 >ところがチェックをはずすべき「参照不可」が見あたりません。 「参照不可」になっているものは、ひとつもないということでよろしいでしょうか? 最適化をしてみたらどうでしょうか? 私は、これくらいしか思いつきませんが、もし、差し支えなければ、エラーとなるようなサンプルを作っていただいて、メールいただいても構いませんが・・・ |
▼かみちゃん さん: こんにちは。 実はいま休日出勤中です。 会社からメールできないようなので以下にサンプルを書きます。 まず用意したのがテーブル1で、フィールド1に”11111111_"がテキスト型で入っています。 次に作成したクエリー1の式ビルドが、式1: Val([テーブル1]![フィールド1]) となっています。 実行後"11111111"を得たいのですが、クエリ式'Val([テーブル1]![フィールド1])' のコンパイルエラーが発生しました、と出ます。 以上です。 |
こんにちは。かみちゃん です。 >会社からメールできないようなので以下にサンプルを書きます。 やはり、再現できません。 新規のMDBにテーブル1とクエリ1だけ作っても、そうなりますでしょうか? |
▼かみちゃん さん: こんにちは。 空のデータベースで、はじめからやり直したらできました。 ブランクとかが入っていたのかと思いましたが、入っていませんでした。 お手数をおかけしてすみませんでした。 感謝申し上げます。 |