|
▼ゆずぽん さん:
おはようございます。
>改行を消す方法はあるのでしょうか?
まず改行についてですが、
VBA内では「vbCrLf」という定数を使うことが可能です。
またクエリ内で処理したい場合はCr(キャリッジリターン)とLf(ラインフィード)
をキャラクターコードで連結させます。Chr(13) & Chr(10)
> 空白の行が残ってしまいます。
ご提示のようなデータですと、
+++ CrLf ??? CrLf *** CrLF
というデータが
+++ CrLf CrLf *** CrLF
となるわけですよね。
空白行についてはCrLfが連続で出現するので、
こちらを1つにしてあげれば良さそうです。
Replace(Replace([Data],"???",""),
Chr(13) & Chr(10) & Chr(13) & Chr(10),Chr(13) & Chr(10));
ただしこれでは先頭に???があった場合は処理できません。
力技になってしまいますが、
まず初めに Left([AAA],3) が ??? であった場合はMid([AAA],6) に変換し、
その後上記の処理を行うとうまくいくと思われます。
Function exReplace(varData As Variant, strFind As String) As Variant
If Not IsNull(varData) And Len(varData) > Len(strFind) Then
If Left(varData, Len(strFind)) = strFind Then
varData = Mid(varData, Len(strFind & vbCrLf) + 1)
End If
varData = Replace(varData, strFind, "")
varData = Replace(varData, vbCrLf & vbCrLf, vbCrLf)
End If
exReplace = varData
End Function
とモジュールに記述して
UPDATE テーブル名 SET AAA = exReplace([AAA],"???");
こんな感じでしょうか。
|
|