首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解决JET / Access中缺少Left Trim(string,char[])函数的问题

解决JET / Access中缺少Left Trim(string,char[])函数的问题
EN

Stack Overflow用户
提问于 2010-07-08 04:35:25
回答 4查看 2.7K关注 0票数 0

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

代码语言:javascript
复制
Replace(LTrim(Replace(ADDRNO,'0',  ' ')),' ',  '0')

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

我正在寻找的是一种修剪这些零的方法,要么让JET引擎允许我使用Replace函数,要么完全使用其他方法。

编辑:修正了Replace函数的语法。问题仍然存在。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-08 05:39:47

我建议

代码语言:javascript
复制
Val(ADDRNO)

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

票数 3
EN

Stack Overflow用户

发布于 2010-07-08 04:43:00

我不确定您运行的是什么上下文,但这似乎表明参数顺序不同,使用双引号而不是单引号(我已经有一段时间没有使用Access了,所以这可能无关紧要),也可以尝试在列名上使用方括号:

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

代码语言:javascript
复制
Replace(LTrim(Replace([ADDRNO], "0",  " "))," ", "0")

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

代码语言:javascript
复制
Replace ("alphabet", "a", "e")

如果这是有效的,那么您就知道Replace函数是有效的,而且还有其他一些问题。

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

票数 0
EN

Stack Overflow用户

发布于 2010-07-08 04:43:13

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

代码语言:javascript
复制
debug.? Replace("My string", "i", "o")   -> "My Strong"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3198567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档