3

7桁の数字の列があります。データがインポートされると、各数値の後ろに 3 つの空白がインポートされました。更新/選択クエリでいくつかの異なるバージョンの Trim() を試しましたが、うまくいきませんでした。アクセス2007を使用しています。

以下は、私が試したさまざまなことです。

クエリを選択

Expr1: Trim([Number])
Expr1: RTrim([Number])

およびクエリの更新

UPDATE Table SET [Number] = Replace([Number], " ", "");

http://office.microsoft.com/en-us/access-help/remove-spaces-from-the-beginning-and-end-of-a-text-value-HP001099033.aspx

4

2 に答える 2

2

これらの努力が失敗した理由はわかりませんが、このUPDATEステートメントを試してみることをお勧めします.

UPDATE [Table] SET [Number] = RTrim([Number])

それでも末尾のスペースが削除されない場合、試してみるとどうなりますか? エラーメッセージはありますか? SetWarningsエラーメッセージを抑制することができるオフになっている可能性がありますか?

また、これらのフィールド値に表示されない文字が含まれていないかどうか、スペースのトリミングを妨げる可能性があるかどうかも確認してください。たとえば、次のように各フィールドの最後の文字の ASCII 値を確認できます。

SELECT Asc(Right([Number], 1)) AS ascii_value
FROM [Table];

スペース文字は ASCII 32 です。

最後に、これらの提案から解決策が得られない場合は、フィールドに期待どおりの内容が含まれていることを確認してください。

SELECT [Number]
FROM [Table]
WHERE [Number] ALike '%   ';
于 2012-12-06T18:23:16.307 に答える
1

You can use a Regular Expression. This will filter out ALL non-numbers.
You would have to create a function in VBA that is called from your query. So, try this:

Function NumOnly(S As String) As String
   Dim regex As New RegExp
   regex.Pattern = "[^0-9.-]"
   regex.IgnoreCase = True
   regex.Global = True
   NumOnly = regex.Replace(S, "")
End Function

and use it thus:

UPDATE Table SET [Number] = NumOnly([Number]);
于 2012-12-06T19:13:49.327 に答える