ACCESS 2003で、正規表現を使用した置換はできますか?

Microsoft Access10,705閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

このベストアンサーは投票で選ばれました

0

その他の回答(2件)

0

”クエリなどには詳しくない・・・・” とありますが、あえてクエリ(更新クエリ)を使う方法で。 ・二つの関数を使用します。 ① Mid関数【例:Mid([ABC],1,4)】 ・・・・文字列からいくつかの文字列を抜き出します。ABCフィールドの1桁目から4桁まで抜き出します。質問のデータ例ですと、 a.b.c.d.e. は a.b. となり aa.bb.cc.dd.ee. は aa.b となります。 ② InStrRev関数【例:InStrRev([ABC],"."】 ・・・・文字列の後方から指定された文字(例では""で囲んだ.(ピリオド))の桁位置を返します。質問のデータ例ですと、a.b.c.d.e. は 10 となり aa.bb.cc.dd.ee. は 15 となります。 必ず最後が.(ピリオド)で全てのデータにある場合はこの二つを組み合わせて使用できます。質問のデータが入っているフィールド名を仮にABCとします。 Mid([ABC],1,InStrRev([ABC],".")-1) これでABCフィールドの1桁目から、後方の.(ピリオド)のある1桁前(-1)までを抜き出します。 (必ず最後が.(ピリオド)でない場合は使えません(a.b.cの場合bc間のピリオドより前が抜き出されます)。ピリオドがないデータがある場合エラーになります。この場合はクエリをちょっと工夫しなければなりません。) あとはこの式を更新クエリに使用するだけです。作成方法は以下のページを参考にして下さい。詳しく説明されています。 アクションクエリ-更新クエリの作成: http://www.mahoutsukaino.com/ac/ac2000/ac2000/actionq/action04.htm

2

VBAでユーザー関数を作ります。 Public Function regexp_replace(source, pattern, dest) Dim Reg As Object Set Reg = CreateObject("VBScript.RegExp") Reg.pattern = pattern Reg.IgnoreCase = False Reg.Global = True regexp_replace = Reg.Replace(source, dest) End Function あとはクエリでregexp_replace(TEST1.name,"\.$","")でいけるはずです。

2人がナイス!しています