- ベストアンサー
アクセスのクエリで英数混在から数字表示させたい
こんにちは。 いま、アクセスを使ってコード(英字)と数字のまざっているデータを 数字だけ取り出して、表示するのに困っています。 名前、住所、コードというデータの並びが有って、 この「コード」というのが、最初にアルファベットが 数文字(文字数はランダム)、その後に数字が数桁入った データになります。 (例)hut558764、lwe41887 これをクエリの作業だけで、数字のみの表示にさせるには どういう式をいれたら良いのでしょうか? (例)558764、41887 また、式はどの部分に入れれば出来るのでしょうか? 宜しくお願い致します!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
クエリだけでは、無理なので 数値だけを取り出す関数を、標準モジュールに作り クエリの中から、その関数を使えば 可能です 標準モジュール *パブリックで Public Function Get_numeric(source_str As String) Dim leng As Integer Dim pos As Integer Dim suuchi As Variant suuchi = "" leng = Len(source_str) For pos = 1 To leng If Mid(source_str, pos, 1) >= 0 And Mid(source_str, pos, 1) <= 9 Then suuchi = suuchi & Mid(source_str, pos, 1) End If Next Get_numeric = suuchi End Function クエリでは、その関数を使います SELECT Get_numeric([テーブル2]![d1]) AS 式1, テーブル2.d1 FROM テーブル2; テスト結果 式1 d1 558764 hut558764 41887 we41887
その他の回答 (3)
私の場合は以下のような正規表現DLLを使っています。 http://www.hi-ho.ne.jp/babaq/bregexp.html
お礼
随分時間が経ってしまいましたがその節は有り難うございました!
- kurodai2
- ベストアンサー率38% (77/202)
見落としていました。 >また、式はどの部分に入れれば出来るのでしょうか? これは、クエリのデザインビューでのことでしょうか? であればと言うことで・・ 式は、フィールドのところに書きます。 列名:式 の形です。 該当するフィールドのところで、マウスの右クリックでビルド画面が表示されるので、選択しながらも登録可能です。 また、列名はアクセスが勝手に、式1とか名称は付加します。 1つ前の回答が そうなっています。 自分で、入力しなおせば 変更可能です。
- maron--5
- ベストアンサー率36% (321/877)
A B 1 hut558764 558764 2 lwe41887 41887 B1=LOOKUP(10^10,RIGHT(A1,COLUMN(1:1))*1) ★下にコピー
お礼
随分時間が経ってしまいましたがその節は有り難うございました!
補足
回答有り難うございます。 これはエクセルですか? アクセスのクエリ部分に、B1という項目が無いのですが・・・。 あと、(例)はあくまでも(例)なので、英数とも どの字が出て来るかは不明です。 それともこの式をフィールドに入れたら良いのでしょうか?
お礼
随分時間が経ってしまいましたがその節は有り難うございました!