Office中国论坛/Access中国论坛

标题: 又谈变量的引用 [打印本页]

作者: 咱家是猫    时间: 2011-7-19 23: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的两种不同情况,两种方法)
综上所述,概括一点,就是:变量就是变量,没什么神秘,引用的引号是根据环境不同而不同.
作者: yanwei82123300    时间: 2011-7-20 11:06
谢谢猫老师分享
作者: todaynew    时间: 2011-7-22 09:32
本帖最后由 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、如果是字段变量名,则不应考虑变量类型。
作者: ycxchen    时间: 2011-7-22 16:27
我认为3楼的考虑更详细




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3