Trim()
末尾のスペースを削除します。そのため、文字列値がスペースのように見えるもので終わっていても、 によって削除されてTrim()
いない場合、実際にはスペース文字ではない可能性があります。もう 1 つの可能性は、スペースの後に非表示の文字が続くことです。
いずれにせよ、最後の文字が実際に何であるかを知ることは役に立ちます。
SELECT Asc(Right(your_string, 1)) AS ascii_value
FROM YourTable;
そのキャラクターが何であるかがわかれば、それを取り除く最善の方法を決めることができます.
あなたにとって最善の方法が何であるかはわかりません。コメントで明らかになった詳細から、問題のある文字は非改行スペース、ASCII 160 のようです。その文字が文字列の末尾にある場合、その文字を破棄したいと考えています。おそらく、そのような状況で非改行スペースの前にある通常のスペース文字も破棄したいでしょう。ただし、文字列の他の場所に改行しないスペースが存在する場合は、それらを保持する必要があります。
さらに、Access テーブルに格納されている既存のデータと、VBScript のスクレイピング プロシージャで収集された新しい着信データに対して、これを実行する必要があるようです。VBScript から、クエリはカスタム VBA 関数または関数を使用できませんReplace()
。したがって、スクレイピングコードを見ずに、新しいデータについて何を言うべきかわかりません. 既存のデータについては、質問で提案したものと同様のステートメントを使用できますUPDATE
。これは、VBScript または Access セッション内から機能するはずです。
UPDATE YourTable
SET your_string = Left(your_string, Len(your_string) -1)
WHERE Asc(Right(your_string, 1)) = 160;
末尾の改行なしスペースの前にあるスペースも破棄したい場合は、 を組み込みTrim()
ます。
UPDATE YourTable
SET your_string = Trim(Left(your_string, Len(your_string) -1))
WHERE Asc(Right(your_string, 1)) = 160;