ACCESS LIKE问题

我发现有时候用%作为通配符不行,需要用*号作为通配符,这是怎么回事,同样是ACCESS数据库,怎么有时候用%有时候用*想不通,请高手解答select*fromawhere... 我发现有时候用%作为通配符不行,需要用*号作为通配符,这是怎么回事,同样是ACCESS数据库,怎么有时候用%有时候用*想不通,请高手解答
select * from a where dd like '%工%'
select * from b where dd like '*工*'
以上两句在同一个ACCESS数据库中用,为什么 B表不能用%,而要用*号,让我很想不通
展开
 我来答
badkano
推荐于2016-05-23 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885368
团长

向TA提问 私信TA
展开全部

这个需要在access里设置一下,把

ANSI-89规范改成ANSI-92规范

 

进到库里,上边【工具】-【选项】

找到【表/查询】标签

 

 

 

把下边的sql server兼容语法,当前数据库勾选,这样你就能在access里用%的通配符了

 

 

这个在access2003以后的版本使用,你说的在asp中可用%主要是走了个API接口的原因

tjrmgs
2013-04-11 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1039万
展开全部
这是因为运行这些SQL语句时所使用的数据库引擎语法不同所致,ANSI-89 SQL 语法,通配符为*。 ANSI-92 SQL 语法,通配符为“%”。

直接在ACCESS里面通配符为“ * ”号;在程序里面如果使用ADO等数据访问对象访问编辑ACCESS数据库里的数据,则通配符为“%”号。

一般来讲直接在ACCESS对象(例如查询、窗体、表等)里面应该使用“*”号通配符;如果在程序里使用数据访问API,例如ADO等间接访问ACCESS,就应该使用“%”通配符。

实在是不确定的话,那就用笨办法,那个输出结果正确就用那个通配符。
追问
问题是我都是在ACCESS里的查询窗进行的,另外我是在ASP下用,一直用的%
追答
直接在ACCESS查询对象里应该使用*通配符,通过ASP时那就要看你使用什么方式访问Access了,ASP通常使用ADO或更新的ADO.net,那就要使用%通配符了。

一般来讲用EXECUTE语句运行SQL都是用%通配符;DoCmd.RunSQL 则使用*通配符。

在ACCESS查询对象里不应该出现A表使用*通配符,而B表使用%通配符的情况,你说的这种现象比较神奇。要不,我将我的邮箱用HI告诉你,请将那个ACCESS数据库发过来,我实际检查一下发生了什么事情。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式