人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ACCESSの質問です。
TBL_XのXというテキスト型フィールドに【】で囲んだ文字列が数個入っています。
この【】で囲まれた文字列を【】も含めて除外するクエリの式を教えてください。

例)【○○○○】ABC【△△】DEF【■■】→ ABCDEF という結果にしたいです。

【】の場所と個数は、レコードごとにばらばらです。


●質問者: rupopon
●カテゴリ:コンピュータ 学習・教育
✍キーワード:ABC access def クエリ テキスト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Im_Me
●35ポイント

ACCESSのバージョンはいくつになりますか?

Replace関数が使えますが、2000だと関数を作ってあげないと、直接クエリでは使えないようです。

↓TIPSです

http://www.nurs.or.jp/~ppoy/access/access/acM029.html

◎質問者からの返答

ありがとうございます。2003になります。よろしくお願いします。


2 ●
●35ポイント

id:Im_Meさんがしばらく回答できなそうですので、横から回答させていただきます。

まず、ユーザ定義関数を使う必要があります。

モジュールを新規作成し、以下の myReplace 関数を定義してください。

Option Compare Database
Option Explicit
Function myReplace(orginalString As String) As String

' 正規表現用のオブジェクトを生成
Dim regexp
Set regexp = CreateObject("VBScript.RegExp")
Dim strAns As String

' 正規表現のパターンを設定
regexp.Pattern = "【.*?】"
' 一致するパターン全てを対象にする
regexp.Global = True
' 関数の引数で渡した文字列を対象に置換
' 正規表現【.*?】にマッチする部分を""(文字なし)に置換
strAns = regexp.Replace(orginalString, "")
' 正規表現オブジェクトの削除
Set regexp = Nothing
' 置換結果の文字列を戻り値にする
myReplace = strAns

End Function

その後、クエリのデザインビューのフィールドで myReplace(field1) というように設定します。(この場合、field1 という列を対象に置換を行います。SQLビューであれば以下のように myReplace() を使います。

SELECT myReplace(field1) AS 置換後の値
FROM テーブル1;
◎質問者からの返答

ありがとうございました。やってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ