事实上这个问题不太容易讲清楚,因为不同的使用情景下会有很多的变化,有点烦。大致可根据下列原则来确定如何使用引号。
ACCESS规定对于作为字符型数据类型而引用的参数必须加双引号(外层已经使用了双引号的情况下则应改用单引号),作为日期类型引用的参数则必须使用一对#号将其括起来,以便系统能够识别。对于字符型参数如果不使用引号则系统会可能因无法识别而报错。与之相同,对于作为“时间日期”类型引用的参数,如果不使用#号则系统也可能会因无法识别而报错。对于字符和时间日期类型以外的参数的引用,例如数字、布尔值等则不要加引号或#号,如果硬加上反而可能导致报错。
为了增加系统的使用友好度,access系统在很多使用情景下自动为用户添加的参数加上引号或实施类型转换,有些情况下即使不用引号或用错了引号系统也可以成功自动实施类型转换而不会报错,但是有时这种方便反而会成为麻烦,令初学者无所适从。要完全熟练掌握ACCESS中引号的使用需要写多练才成。
下面举个例子说明一下双引号的用法,供参考
用SQL语句向库存表插入一条库存记录
insert inti 库存表(产品ID,库位ID,数量,入库日期)
values("001","A-359",150,#2016-02-11#);
说明:字段“产品ID”,“库位ID”的数据类型是文本,所以前两个参数"001","A-359"要加引号;字段“数量”的类型是数字,参数150无需加引号;字段“入库日期”类型是时间,所以参数2016-02-11要加上一对#号。
如果用VBA代码方式运行上述追加查询则应做如下处理
Private Sub Command1_Click()
Dim strSql As String
strSql="insert inti 库存表(产品ID,库位ID,数量,入库日期) values('001','A-359',150,#2016-02-11#);"
DoCmd.RunSql strSql
End Sub
注意:因为外层已经使用了双引号,所以参数'001','A-359'改用单引号。实际上ACCESS中不同的数据库对象里使用双引号的情景有挺多的变化,这里很难一一说清楚。请根据上述原则慢慢摸索吧。