设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1873|回复: 3
打印 上一主题 下一主题

[查询] Left()函数的问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-9-8 16:10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Access2003所编如下函数用于设计的查询中:
Left(字符串表达式A,字符串个数),第二个参数选用常数时没问题,如选用InStr()函数(比如Left中第一个参数字符串中"*"所在位置)时:

Left(字符串表达式A,InStr(字符串表达式A,"*"))
在Win764位、装ACRuntime2003的机器上取不出结果,真不知什么原因。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-9-8 23:10:01 | 只看该作者
不会啊。除非你的instr里找不到数据(即字符串不含星号)。另外,建议加上第一个参数。

一般这种情况,可以逐步检查的。
例如,先拆开,改写为:Left(字符串表达式A,3),试试能不能debug.print 出来。如果不能,可能就是你的ACRuntime2003有问题了。印象中有时候Access版本损坏后会出现无法使用left之类的函数。这个时候建议卸载后重装。事实上,个人不太建议使用runtime,因为access本身就因为版本问题经常出bug,runtime则是更加不稳定的东西。
如果left没问题的话,剩下的事情就简单多了,直接检查字符串有没有星号就行了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2016-9-9 19:41:28 | 只看该作者
谢谢roych回复,Left(字符串表达式A,3)没问题。但把常数3换成变量就不行了,我在两台64位Win7上都不行。因为是在查询设计中使用,第一个参数一加上就更出错了。真不知原因在哪儿。
4#
 楼主| 发表于 2016-9-14 10:09:51 | 只看该作者
出错原因找到了:原来是InStr的问题,InStr(字符串表达式A,"*"),不论*号位于字符串表达式A中哪个位置,InStr函数都返回的是1。
原因不明。不过只好用InStrB函数来替代,只是麻烦多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-16 00:48 , Processed in 0.093276 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表