设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 10789|回复: 14

[查询] 【新手入门】之八:“连就连”——浅谈“&”和“+”连接符的区别

[复制链接]
发表于 2013-3-4 13:07:50 | 显示全部楼层 |阅读模式
       “连就连,你我结成百年缘,哪个九十七岁死,奈何桥上等三年。”
       这是广西的一首民歌。从形式上来看,对爱情坚贞不渝的歌颂够直接奔放的了。说起这个,是因为前两天回帖时版友时,提及连接符的使用问题。在其它程序语言中,加号和”&“连接符是通用的。但在Access里,主要连接符是”&“,冒冒然给smilingkiss将了一军一时间倒也没无从答对【详见:http://www.office-cn.net/thread-116545-1-1.html】。
       我们先来看看问题,在Where字句中输入以下条件:Like '*'+[請輸入關鍵字: 委託人]+'*'Like '*'&[請輸入關鍵字: 委託人]&'*'到底有什么区别。
       如果都输入参数的话,结果是一样的。但是,如果不输入参数,那么前者返回Null,也就是空集,而后者返回全部记录。问题来了:为什么?

       我开始怀疑,是不是用“+”连接符会忽略“*”呢?不输入时,当然是Null值了。Null是变量型数据,自然不是数值,那么加号还起作用吗?于是,便在群里跟大家一起研究了下,liwen认为,Null+任意变量=Null,换句话说,就是:
       Like '*'+Null+'*'=Like Null
       这样很好地解释了为什么不输入参数时返回空值的结果。但还有个问题,那为什么Like '*'&Null&'*'返回全部记录呢?因为用“&”时,Null强制返回""【空字符串】。也就是说:
       Like '*'&Null&'*'=Like '**'
       好,解释完毕了。现在可以来总结结论了:
       1、加号主要作为运算符来使用。因此当变量类型不匹配时就会出错,不信的话可以试试 Like "*"+ 30+"*" 看看能不能返回正确结果。
       2、 加号并非强制性连接符。这也就是小宝版主所说的,只有变量都是字符串时才作为连接符使用。因此当Null值与变量相加,就相当于皇帝穿了新装。
       3、&为强制性连接符,当变量为Null时,就强制性转换为""空字符串。
【新手入门】之一:If分支语句
【新手入门】之二:分支语句总结
【新手入门】之三:循环语句For
【新手入门】之四:循环语句Do和死循环
【新手入门】之五:公共变量与传址过程、传值过程
【新手入门】之六:“悲欢离合总无情”——浅谈Split和Join
【新手入门】之七:嵌套与并列——再谈If流程问题
【新手入门】之八:“连就连”——浅谈“&”和“+”连接符的区别

【新手入门】之九:从百钱百鸡谈起——浅谈“规划求解”兼答lingjiang问
【新手入门】之十:书到用时方恨少——自定义菜单(Access 2003)的制作
【新手入门】之十一:浅谈ADO之序言
【新手入门】之十二:浅谈ADO之Connection
【新手入门】之十三:浅谈ADO之Conmmand(上)
【新手入门】之十四:浅谈ADO之Command(下)
【新手入门】之十五:浅谈ADO之Recordset(上)
【新手入门】之十六:浅谈ADO之Recordset(下)
【新手入门】之十七:浅谈列表框的使用
【新手入门】之十八:双击列表框修改数据
【新手入门】之十九:从“书与女友恕不外借”谈起——浅谈“Bookmark”的使用
【新手入门】之二十:“书与书签”——bookmark属性答疑
【新手入门】之二十一:记录集的“凌迟”——逐条导出记录集

【新手进阶】之一:基础算法(一)
【新手进阶】之二:基础算法(二)
【新手进阶】之三:基础算法(三)
【新手进阶】之四:基础算法(四)
【新手进阶】之五:排序搜索(一)
【新手进阶】之六:排序搜索(二)
【新手进阶】之七:递归算法
【新手进阶】之八:冒泡排序
【新手进阶】之九:浅谈不绑定数据源操作记录
【新手进阶】之十:工作日的计算
【新手进阶】之十一:“庖丁解牛”和“纪昌学射”——浅谈表格式文本数据的导入
【新手进阶】之十二:从四脚腾空的奔马谈起——原来界面可以这样设计
【新手进阶】之十三:Outlook风格导航界面
【新手进阶】之十四:仓库管理系统

本帖被以下淘专辑推荐:

点击这里给我发消息

发表于 2013-3-4 14:28:03 | 显示全部楼层
收到
发表于 2013-3-4 16:14:01 | 显示全部楼层
明白了,辛苦roych了,谢谢啊版主^_^

点击这里给我发消息

发表于 2013-3-5 09:11:02 | 显示全部楼层
受教!
发表于 2013-3-5 21:25:57 | 显示全部楼层
有道理,楼主的精神,赞一个。。。
发表于 2013-3-6 09:09:45 | 显示全部楼层
通俗易懂,好!

点击这里给我发消息

发表于 2013-3-12 11:35:36 | 显示全部楼层
总结的好,我一般都是用时随便用,出错了再调试根本没总结过
发表于 2013-3-28 21:15:59 | 显示全部楼层
将版主的各帖依次读完,有些不甚了了,因为工作的需要,刚从excel接触到Access,只有慢慢学习了。感觉版主发帖风格别具一格,技术帖子能够这样地娓娓道来,还真是不多,导语更是旁征博引,引人入胜啊。
发表于 2013-12-2 21:09:17 | 显示全部楼层
提个问题,如果想将&连接符作为字符显示呢?如何做到呢

点击这里给我发消息

发表于 2013-12-3 10:59:42 | 显示全部楼层
littlekey 发表于 2013-12-2 21:09
提个问题,如果想将&连接符作为字符显示呢?如何做到呢

放在引号里就是字符了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-18 19:24 , Processed in 0.102423 second(s), 38 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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