Microsoft Access 掲示板

特定の条件にあった場合テキストを追加したい。

2 コメント
views
4 フォロー

いつもお世話になっています。
access2010

分からないことが出てきましたのでご教授いただきたくよろしくお願いします。

作業テーブル
品番
説明文

のようなテーブルがあったとして
説明文の中には HTMLが入っています。

やりたい事
テキストの中で <img から始めるもののみ 締めの > の後ろに <br>を付けたい
※注意1つのセルの中で複数回 imgから始める タグが含まれる場合有


<img src="/img/aaa.jpg>
<table>
  <tr>
    <td>りんご</td>
    <td>甘酸っぱい</td>
    <td>おおむね赤</td>
  </tr>
  <tr>
    <td>なつみかん</td>
    <td>かなり酸っぱいと思う</td>
    <td>たいてい黄色</td>
  </tr>
</table>
<img src="/img/aaa.jpg>

だったとすると

<img src="/img/aaa.jpg><br>
<table>
  <tr>
    <td>りんご</td>
    <td>甘酸っぱい</td>
    <td>おおむね赤</td>
  </tr>
  <tr>
    <td>なつみかん</td>
    <td>かなり酸っぱいと思う</td>
    <td>たいてい黄色</td>
  </tr>
</table>
<img src="/img/aaa.jpg><br>

何卒 よろしくお願いします。

laa
作成: 2020/08/21 (金) 14:53:39
最終更新: 2020/08/21 (金) 14:55:11
通報 ...
1
kitasue 2020/08/22 (土) 04:42:18 ce705@e9d43

標準モジュールに以下を定義すると、

Function f_strInsAfter(strOrg As String, strBgn As String, strEnd As String, strIns As String) As String
    Dim p1 As Long
    Dim p2 As Long
    
    p1 = InStr(strOrg, strBgn)
    If p1 = 0 Then
        f_strInsAfter = strOrg
        Exit Function
    End If
    
    p2 = InStr(p1, strOrg, strEnd)
    If p2 = 0 Then
        f_strInsAfter = strOrg
        Exit Function
    End If
    
    If Len(strOrg) < (p2 + Len(strEnd)) Then
        f_strInsAfter = Left(strOrg, p2 + Len(strEnd) - 1) & strIns
    Else
        f_strInsAfter = Left(strOrg, p2 + Len(strEnd) - 1) & strIns & f_strInsAfter(Mid(strOrg, p2 + Len(strEnd)), strBgn, strEnd, strIns)
    End If
    
    
End Function

f_strInsAfter([説明文],"<img",">","<br>")
がご所望の文字列を返します。

2

kitasue様
モジュールを記載いただきありがとうございます。

頂きましたモジュールで試してみたところ無事思うような動きになりました。
大変助かりました。 本当にありがとうございます。

少しずつ私も勉強していきたいと思います。
今後ともよろしくお願いします。