设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

关于字符串连接的详细内容

[复制链接]
跳转到指定楼层
1#
发表于 2015-2-13 17:10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很多朋友对什么时候用链接字符串"&","+",什么时候用双引号(""),单引号(''),"NULL"与空字符串("")的区别等等都不是很清楚,这里我让大家先明确一些概念。这样对于我们后面理解就有很好的帮助

概念:
字符:由一个字母组成的,例如'a'、'b'…… 就是字符了。
字符串:字符串或串(String)是由数字、字母、下划线组成的一串字符。它是编程语言中表示文本的数据类型;或由多个字符组成的,例如:"Hello wold !",它是由双引号包括着的。(注:空格  应也代表一个字符)
标识符:窗体或报表上的表字段或控件的‘名称’,或者是这些字段的控件的‘属性’。
运算符:+-*/等可以进行运算的符号。
函数:有系统自带的函数(Eval,Dsum......),和自定义函数(自己编写,有一定功能的方法)之分。
常量:不会改变的数值,如private const str as string =“100101”
变量: 变量是指程序运行时值会发生变化的数据
表达式:就是由标识符、函数、运算符号等组成的算式。使用表达式可以执行:计算,检索字段或控件的值,为查询提供条件,定义规则,创建计算控件和计算字段,以及定义报表的分组级别。如 “A+B”

数据类型:
文本类型:表示一个字符串,要用双引号("") 括起来
如:“张飞”,“Lucy”。“”表示空字符串

数值型:表示一个的数值,可以为整数或小数
如:1,1.25,0.456,-123。

布尔型常:表示真/假
只有True和False,不需要用引号

日期/时间型常量:表示一个日期/时间,要用两个井号(#)将日期/时间括住,不能用引号。
如:#2015-01-20#。

(非)空值:表示空值或非空值的常量。
只有Is Null和Is Not Null


几个代表空含义的区别(0、""(空字串)、Null、Empty)
有了前面的知识作铺垫,我们就很好理解了。首先定义几个变量,观看它们的不同
Dim A
Dim B As String
Dim C As Integer
Dim D As Object
A 等于 Empty, 因为尚未初始化的「不定型变量」都等于 Empty。但如果检测 A = "" 或 A = 0, 也都可以得到 True 值。
B 等于 "", 因为尚未初始化的非固定长度「字串」都等于 "" 。 但请注意 B<> Null。
C 等于 0, 这个是整型、
D 等于 Nothing, 尚未设定有对象的「对象变量」都等于 Nothing, 但请不要使用 D = Nothing , 而要使用 D Is Nothing 来判断 D 是否等于 Nothing, 因为判断 是否相等的符号是 Is 不是 = 。
最令人迷惑的地方是 Null 这个保留字, 请看以下语句:
Print X = Null
Print X <> Null

结果都是输出 Null(不是 True 也不是 False), 这是因为任何一个运算式只要含有 Null , 则该运算式就等于 Null, 实际上想要判断某一数据是否为 Null 绝对不能使用:
If X = Null Then ' 永远都会得到 Null
而要使用:
If IsNull(X) Then
哪一种数据会等于 Null 呢? 除了含有 Null 运算式之外, 就属没有输入任何数据的「数据字段」(在数据库中) 会等于 Null。
所以:Null表示未知空, 一个用来指明任何数据值都不存在的一个特殊值,  而 ""表示已知空, 长度为0字符的一种字符串数据类型


连接字符“&”“+”的区别
“&”“+”都是连接符,都有连接的功能,如:“123”+“456” 的结果是都字符串“123456”

但是“&”连接符连接两边的数据时,如果有一边不是字符串,“&”连接符会先将非字符串转化为字符型,再作连接,如123&"abc" 结果即为“123abc”。但“+”连接符会报错

但是正好相反的是,“+”能作运算符的作用。“12”+13  “+”运算符会把字符串中的数字转化为数值型,再进行算术加法运算,即结果为25,而“&” 运算符即为“1213”
值得注意的是:使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,系统先把它作为类型定义符处理,因而就会出现语法错误。

所以:连字符在执行字符串连接时是首选的运算符。在除加法以外的其他情况下应尽量避免使用加法运算符,除非特地需要在表达式中产生 Nulls 值。


连接字符串
上面说了这么,其实也是围绕一个问题去讨论的。就是语句连接的时候,是用井号(##),引号(''),还是双引号("")
这里说明一下:" " 双引号表示为字符串,' ' 单引号表示引用值,但得强调一点,上述的符号在不同的需求的地方,如:表达式、SQL语句、VBA编程中,用法或表示的意思略有一点点不同
CurrentDb.Execute "UPDATE tblStud SET 日期 = #" & Me.日期 & "# where Fid=" & Me.编号 & " and FName='" & Me.编号 & "'"
看这句话,你会发现,这里用了三个变量,都有不同的写法。
总结:引用控件的数据类型为字符型时加单引号,为日期时时加#号,为数值型时,直接双引号


[推荐]关于VBA表达式中的字符串和控件变量引用
http://www.office-cn.net/thread-36632-1-1.html

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2015-2-13 17:41:27 | 只看该作者
连接符嘛,以前在版主群里跟大家讨论过的…
http://www.office-cn.net/forum.php?mod=viewthread&tid=116560
3#
发表于 2015-10-7 16:35:18 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 17:26 , Processed in 0.172334 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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