0

我需要从 Access 数据库中的字符串字段中删除前导零,该字段在每次在 C# 程序中使用时都会被销毁并重新创建。大多数字符串库(甚至是 SQL 库)都包含一个 Trim 函数来删除前导或后跟空格。不幸的是,Access 似乎没有 LTrim(string s, char[] trimChars) 或类似的东西。为了解决这个问题,我编造了这个怪物:

Replace(LTrim(Replace(ADDRNO,'0',  ' ')),' ',  '0')

但这导致了一个未定义的 Replace 函数引用,即使它显然是一个 Access 函数。

我正在寻找的是一种修剪这些零点的方法,或者通过让 JET 引擎让我使用 Replace 功能或完全通过其他方法。

编辑:修复了替换函数的语法。问题仍然存在。

4

4 回答 4

3

我建议

Val(ADDRNO)

它将返回不带前导零的数字部分。

于 2010-07-07T21:39:46.640 回答
0

我不确定您正在运行什么上下文,但这似乎表明参数顺序不同并且使用双引号而不是单引号(我有一段时间没有使用 Access,所以也许没关系),也试试 square列名上的括号:

http://www.techonthenet.com/access/functions/string/replace.php

Replace(LTrim(Replace([ADDRNO], "0",  " "))," ", "0")

如果这给出了相同的错误,只需尝试使用 replace 函数来缩小问题范围:

Replace ("alphabet", "a", "e")

如果这有效,那么您知道替换功能有效,并且还有其他一些问题。

编辑:如果它根本不起作用,那么 Replace 很可能是仅在 Access 应用程序中可用的 VBA 功能,而不是 Jet 的一部分。你可以尝试一些左/右函数的组合并将字符串切碎,这可能会变得非常难看。我个人只会遍历记录集并使用 C# 代码来修改值。希望您没有如此多的记录,这将是一个问题。

于 2010-07-07T20:42:59.757 回答
0

我认为这只是你的参数顺序错误:

debug.? Replace("My string", "i", "o")   -> "My Strong"
于 2010-07-07T20:43:12.663 回答
0

您可以使用修剪和替换。

于 2010-07-07T20:45:25.507 回答