MS access で データの中身に、HTMLタグが入っているものがあり、

このタグの部分だけを削除したいと考えています。
HTMLのタグを除去するクエリーの書き方を教えて下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/06/19 01:35:11
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:memo77 No.1

回答回数238ベストアンサー獲得回数20

ポイント35pt

クエリだけでは無理です。

少なくともユーザー定義関数を作る必要があります。

Accessのバージョンが2000以降であればReplace関数を使えますが、正規表現でも使えない限りは、さまざまなパターンに対応するというのは難しいでしょう。


が入っているだけとか、

だけとか、限定的なものであればユーザー定義関数でReplaceを使って作成できます。


タグのパターンが複雑であれば、正規表現でも使えない限り難しいでしょう。一度きりの作業であれば、データを外部に出力して、適切な外部ツールを使ったほうが速いと思います。



VBAから正規表現を使ってみようと思うのであれば検索語はRegexあたり。

↑のアドバイスで調べられないとすると、自力解決は無理な課題だと思ってください。

http://www31.atwiki.jp/memo77/

id:llusall No.2

回答回数505ベストアンサー獲得回数61

ポイント35pt

1.標準モジュールに次のファンクションを追加します。

Option Compare Database
Option Explicit

Public Function ExterminateTags(ByVal html As String) As String
    Dim reg
    Set reg = CreateObject("VBScript.RegExp")
    With reg
        .Global = True
        .IgnoreCase = True
    End With
    reg.Pattern = "<.*?>"
    ExterminateTags = reg.Replace(html, "")
End Function

2.クエリーの新規作成をします。

3.更新クエリーにします。

  クエリーのデザインビューから、メニューの[クエリー]-[更新]を押す

4.

フィールド HTML文字列
テーブル テーブル1
レコードの更新 ExterminateTags([HTML文字列])

などのようにします。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません