Office中国论坛/Access中国论坛

标题: Left()函数的问题 [打印本页]

作者: koutx    时间: 2016-9-8 16:10
标题: Left()函数的问题
Access2003所编如下函数用于设计的查询中:
Left(字符串表达式A,字符串个数),第二个参数选用常数时没问题,如选用InStr()函数(比如Left中第一个参数字符串中"*"所在位置)时:

Left(字符串表达式A,InStr(字符串表达式A,"*"))
在Win764位、装ACRuntime2003的机器上取不出结果,真不知什么原因。

作者: roych    时间: 2016-9-8 23:10
不会啊。除非你的instr里找不到数据(即字符串不含星号)。另外,建议加上第一个参数。
[attach]59894[/attach]
一般这种情况,可以逐步检查的。
例如,先拆开,改写为:Left(字符串表达式A,3),试试能不能debug.print 出来。如果不能,可能就是你的ACRuntime2003有问题了。印象中有时候Access版本损坏后会出现无法使用left之类的函数。这个时候建议卸载后重装。事实上,个人不太建议使用runtime,因为access本身就因为版本问题经常出bug,runtime则是更加不稳定的东西。
如果left没问题的话,剩下的事情就简单多了,直接检查字符串有没有星号就行了。

作者: koutx    时间: 2016-9-9 19:41
谢谢roych回复,Left(字符串表达式A,3)没问题。但把常数3换成变量就不行了,我在两台64位Win7上都不行。因为是在查询设计中使用,第一个参数一加上就更出错了。真不知原因在哪儿。
作者: koutx    时间: 2016-9-14 10:09
出错原因找到了:原来是InStr的问题,InStr(字符串表达式A,"*"),不论*号位于字符串表达式A中哪个位置,InStr函数都返回的是1。
原因不明。不过只好用InStrB函数来替代,只是麻烦多了。





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3