设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] 又谈变量的引用

[复制链接]
跳转到指定楼层
1#
发表于 2011-7-19 23:27:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于在ACCESS中对变量引用时的引号处理,很多前辈都有论述
大致的情况如下:
数字型变量:"& 变量 & "
文本型变量:'"& 变量 &"'
日期型变量:#"& 变量 &"#
如:
dim TheID as long
TheID=1000
Me.Form.RecordSource = "Select * From 表1 Where 编号>" & TheID & " And 显示=-1"
(取表中编号>1000且显示为是的记录)
dim TheName as string
TheName="张三"
Me.Form.RecordSource = "Select * From 表1 Where 姓名='" & TheName & "'"
(取表中姓名为张三的记录)
Dim TheDate As Date
TheDate = Date
Me.Form.RecordSource = "Select * From Table1 Where 日期=#" & TheDate & "#"
(取表中日期等于当天的记录)
很多新手被这些新手整得头大,一会单引,一会双引,不知怎么回事,其实,我们应该换个角度来考虑一下变量的引用.
其实变量就是变量,它的值赋给它之后,它就代表那个值,至于一会单引,一会双引,主要是看接收变量的环境所致.
我们应该把引号看成与变量无关的东西,它其实是引用它的环境的东西.
上面说了,大致的情况是那样,那换句话说,就是不是定式.
如数字型变量:
dim TheID as long
TheID=1000
Me.Form.RecordSource = "Select * From 表1 Where 编号>" & TheID
(取表中编号>1000的记录)
dim BackColor as long
BackColor=16777215
Me.Label1.BackColor = TheColor
(把标签Lable1的背景色设为白色)
这里两个例子虽说是数字型变量,但引用的方法却有所变化,也可能通过.
文本型变量:
dim TheFiledName as string
TheFiledName="建单日期"
Me.Form.RecordSource = "Select *,"& TheFiledName &" As A From 表1"
(取表中所有字段值及把建单日期字段定义为别名A)
这个例子,虽说TheFileName为字符串变量,但用的地方不同,引号又不同.
也就是说,字符串变量如果做为查询的条件的话,必需要接受它的环境语句里添加'(单引号)来处理.
如上面变量TheName那个例子,最后的查询语句是:
Me.Form.RecordSource = "Select * From 表1 Where 姓名='张三'"
TheFiledName 这个例子,最后的查询语句是:
Me.Form.RecordSource = "Select *,建单日期 As A From 表1"
再如:
dim TheValue as long
TheValue=65465
msgbox "您当前定义的值为: "& TheValue
msgbox "您当前定义的值为: ("& TheValue &")."
(对一个值的Msgbox的两种不同情况,两种方法)
综上所述,概括一点,就是:变量就是变量,没什么神秘,引用的引号是根据环境不同而不同.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-7-20 11:06:09 | 只看该作者
谢谢猫老师分享
3#
发表于 2011-7-22 09:32:15 | 只看该作者
本帖最后由 todaynew 于 2011-7-22 09:33 编辑
咱家是猫 发表于 2011-7-19 23:27
关于在ACCESS中对变量引用时的引号处理,很多前辈都有论述
大致的情况如下:
数字型变量:"& 变量 & "


dim TheFiledName as string
TheFiledName="建单日期"
Me.Form.RecordSource = "Select *,"& TheFiledName &" As A From 表1"
(取表中所有字段值及把建单日期字段定义为别名A)
这个例子,虽说TheFileName为字符串变量,但用的地方不同,引号又不同.
也就是说,字符串变量如果做为查询的条件的话,必需要接受它的环境语句里添加'(单引号)来处理.


这段阐述不够透彻。我理解应该是这样:
1、vb中用到的sql语句,整体上是一个字符串变量;
2、由于sql语句本身还需要在一些子句上用到变量,因此构造sql语句时需要用到字符串运算符连接一些变量来形成sql语句;
3、在做字符串运算符连接时,要分清楚被连接的是sql语句中需要用到的变量名还是变量值
4、如果连接的是变量值,则需要区分该变量值的数据类型,并按不同类型的表达方式确定是否两端加对应符号('号或#号);
5、如果是字段变量名,则不应考虑变量类型。
4#
发表于 2011-7-22 16:27:30 | 只看该作者
我认为3楼的考虑更详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 07:13 , Processed in 0.079688 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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