我需要从Access数据库中的字符串字段中删除前导零,每次在C#程序中使用它时,它都会被销毁并重新创建。大多数字符串库(甚至SQL库)都包含一个Trim函数,用于删除前导空格或后面的空格。不幸的是,Access似乎没有LTrim(string s,char[] trimChars)或类似的东西。为了解决这个问题,我创造了一个怪物:
Replace(LTrim(Replace(ADDRNO,'0', ' ')),' ', '0')但这导致了对Replace的未定义的函数引用,即使它显然是一个访问函数。
我正在寻找的是一种修剪这些零的方法,要么让JET引擎允许我使用Replace函数,要么完全使用其他方法。
编辑:修正了Replace函数的语法。问题仍然存在。
发布于 2010-07-08 05:39:47
我建议
Val(ADDRNO)它将返回不带前导零的数字部分。
发布于 2010-07-08 04:43:00
我不确定您运行的是什么上下文,但这似乎表明参数顺序不同,使用双引号而不是单引号(我已经有一段时间没有使用Access了,所以这可能无关紧要),也可以尝试在列名上使用方括号:
http://www.techonthenet.com/access/functions/string/replace.php
Replace(LTrim(Replace([ADDRNO], "0", " "))," ", "0")如果出现相同的错误,只需尝试使用replace函数来缩小问题的范围:
Replace ("alphabet", "a", "e")如果这是有效的,那么您就知道Replace函数是有效的,而且还有其他一些问题。
编辑:如果它根本不起作用,那么Replace很可能是一个只在Access应用程序中可用的VBA函数,而不是Jet的一部分。你可以尝试一些Left/Right函数的组合,然后将字符串切碎,这可能会变得非常丑陋。我个人只会遍历记录集,并使用C#代码来修改这些值。希望您不会有如此多的记录,这将是一个问题。
发布于 2010-07-08 04:43:13
我认为只是参数的顺序是错误的:
debug.? Replace("My string", "i", "o") -> "My Strong"https://stackoverflow.com/questions/3198567
复制相似问题