アクセスで以下の通りの文字列で置き換えをしようとしましたら、うまく行きません。

スペースを含んでいるからだと思うのですが、
何かよい方法は無いでしょうか?

↓こちらを↓
ter>
<table width="85%" bgcolor="#CCCCF

↓こちらに変換する↓
ter><b><Font Size="3" Color="#ff6600">ようこそ!<br><br></Font></b><table width="85%" bgcolor="#CCCCF

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2006/08/26 00:42:58
  • 終了:2006/08/28 19:12:13

回答(2件)

id:llusall No.1

llusall回答回数505ベストアンサー獲得回数612006/08/26 04:17:34

Option Compare Database

Option Explicit

'しっかりと、置換する文字列が設定されていれば、必ず置換できます。

'できない原因を推測

'  おそらく、

'  置換前の文字列に「改行」が入っているようですが、この改行の為、上手くいかない?

'    改行(vbCrLf)が正しく処理(セット)されているかよく確認する。

'  または、スペースの数が違っているため、置換できない。

'    念の為、スペース2つは、1つに置換(念の為)する処理を入れる

Public Function test()

    Dim s  As String

    Dim x As String

    Dim a As String

    Dim b As String

    

    '置換前の文字列

    s = "xxxxxxxxxxxxxter>" & vbCrLf

    s = s & "<table width=""85%""         bgcolor=""#CCCCF"" xxxxxxxxxx"

    '提案:スペース2つは、1つに置換

    x = ""

    Do Until s = x

        x = s

        s = Replace(s, "  ", " ")

    Loop

    

    'この文字列を(1)

    a = "ter>" & vbCrLf

    a = a & "<table width=""85%"" bgcolor=""#CCCCF"

    '提案:スペース2つは、1つに置換(念の為)

    x = ""

    Do Until a = x

        x = a

        a = Replace(a, "  ", " ")

    Loop

    

    'この文字列に置換する(2)

    b = "ter><b><Font Size=""3"" Color=""#ff6600"">ようこそ!<br><br></Font></b>< table width=""85%"" bgcolor=""#CCCCF"


    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換前の文字列------------------------"

    Debug.Print s

    'Replace関数により置換

    s = Replace(s, a, b)


    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換後の文字列------------------------"

    Debug.Print s

End Function


'以上、お役にたちますでしょうか?

id:y7ujmnhy

ありがとうございました。

スペースの削除をやってみましたが、うまくいきませんでした。

問題は改行にあるようです。

さらに、同じ文字列でも改行があるところと改行が入っていないところとあります。

これは改行を全部削除する必要があるようです。

当初の質問からずれておりますが、よろしかったらお答えをいただけるとありがたいです。800ポイント差し上げます。

2006/08/26 15:49:20
id:llusall No.2

llusall回答回数505ベストアンサー獲得回数612006/08/26 17:42:41

ポイント800pt

1.改行は、スペース1つに置換

2.スペース2つは、1つに置換


という2つの処理を入れ、文字列を整形してみたらいかがでしょうか??

以下、黒字部分です。


Public Function test()

    Dim s  As String

    Dim a As String

    Dim b As String

    

    '置換前の文字列

    s = "xxxxxxxxxxxxxter>" & vbCrLf

    s = s & "<table width=""85%""         bgcolor=""#CCCCF"" xxxxxxxxxx"


    '提案:文字列を整える

    s = ChangeChr(s)

    

    

    'この文字列を(1)

    a = "ter>" & vbCrLf

    a = a & "<table width=""85%"" bgcolor=""#CCCCF"


    '提案:文字列を整える

    a = ChangeChr(a)

    

    

    'この文字列に置換する(2)

    b = "ter><b><Font Size=""3"" Color=""#ff6600"">ようこそ!<br><br></Font></b>< table width=""85%"" bgcolor=""#CCCCF"

    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換前の文字列------------------------(整形済み)"

    Debug.Print s

    'Replace関数により置換

    s = Replace(s, a, b)

    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換後の文字列------------------------"

    Debug.Print s

End Function


'文字列を整える関数

Public Function ChangeChr(ByVal s As String) As String

    Dim x As String

    

    ChangeChr = ""

    

    '改行は、スペース1つに置換

    s = Replace(s, vbCrLf, " ")

    

    'スペース2つは、1つに置換

    x = ""

    Do Until s = x

        x = s

        s = Replace(s, "  ", " ")

    Loop

    

    ChangeChr = s

End Function



'以上、お役にたちますでしょうか?

id:y7ujmnhy

ご連絡ありがとうございました。

がんばって、やってみましたが、手順がわかりませんでした。

2006/08/28 19:11:42
  • id:llusall
    解決に至らないにもかかわらず、ポイント沢山いただきましてすみません。

    どの辺まで判って、どの辺から判らない等、何か情報を頂けないでしょうか?
    (どのように試してみたが駄目だった等)


    また、置換したいデータはテーブルの中にあり、そのデータを置換したいということでしょうか?

    それとも、すでに文字列型の変数の中にあるものを置換したいということでしょうか?

    情報をお待ちしております。
  • id:y7ujmnhy
    ご連絡ありがとうございます。
    シェアウェアのソフトを購入し、それで作られるData.mdbをいじるために、アクセスを使っています。
    エクセルの使用は2年くらいしているのですが、アクセスは触り始めて1ヶ月ほどです。
    ご説明は基本的にほとんど分かりませんでした。
    Public Function testと
    ChangeChrとか、一通りの検索をかけたのですが、
    思うような検索結果が得られませんでした。
    http://read.kir.jp/file/read57220.bmp
    上記の画像のZ367L~Z372Mまでに改行がかなり入ったデータがあります。全体で行けば1000個くらいの改行ありのデータがあります。この改行をすべて削除したいです。
    具体的にどのボタンを押して次にここを選択して、どこに
    何と入力すればよいか等教えていただけるとうれしいです。

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません