以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [讨论] 关于双引号和单引号,不太明白! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3402) |
-- 作者:wcs -- 发布时间:2009/7/2 23:10:00 -- [讨论] 关于双引号和单引号,不太明白! 我看了帮助中的这样两段代码: 第一个: Total = DataTables("订单").Compute("Sum(数量)", "[客户] = \'" & Customer & "\'") 上述代码中,Filter参数分成了三部分,各部分用运算符&连接起来: "[客户] = \'" & Customer & "\'" 第二个: If e.DataTableName = "订单" AndAlso e.User.Name = "录入员" Then Dim StartDate As Date = Date.Today().AddDays(-10) e.SelectString = "Select * From [订单] Where [日期] > #" & StartDate & "#" End If 第一个中,筛选条件中的参数分三段,这能理解。 第二个中,selectstring 中为什么没有出现单引号,我就不能理解了! 他们有什么不同吗?为什么上面的要有‘’,下面的不能有‘’?? Customer和StartDate都是自己定义的变量,为什么使用起来就不同了啊? [此贴子已经被作者于2009-7-2 23:10:38编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/7/2 23:23:00 -- SelectString中间没有字符,要单引号干什么? 表达式中,字符用单引号,日期用符号# |
-- 作者:wcs -- 发布时间:2009/7/2 23:33:00 -- " & Customer & " 是字符 " & StartDate & " 不是字符 为什么?他们有什么不同吗?如何理解? Customer和StartDate都是自己定义的变量,为什么上面的是字符,下面的不是字符了? |
-- 作者:shaof -- 发布时间:2009/7/2 23:52:00 -- 很显然,第一段代码是筛选客户,客户是字符。 第二段是加载符合条件的日期,日期当然不能用单引号,只能用#号。 |
-- 作者:wcs -- 发布时间:2009/7/3 8:24:00 -- 这也是帮助中的一段: If e.name = "成绩" Then
[此贴子已经被作者于2009-7-3 8:25:51编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/7/3 8:29:00 -- 这又不是表达式,这是一个普通的字符串。 [此贴子已经被作者于2009-7-3 8:30:26编辑过]
|
-- 作者:易狐 -- 发布时间:2009/7/3 8:43:00 -- 这样对比起来看应该更明了: |
-- 作者:shxiaoya -- 发布时间:2009/7/3 8:50:00 -- Total = DataTables("订单").Compute("Sum(数量)", "[客户] = \'" & Customer & "\'") 这样标注一下(红色部分)你应该能看明白吧 [此贴子已经被作者于2009-7-3 8:54:06编辑过]
|
-- 作者:wcs -- 发布时间:2009/7/3 8:54:00 -- 明白了,表达式里会出现‘’ 因为表达式是一个计算公式,里面有数值、日期、字符等值,字符要用‘’,日期要用##,数字直接使用 因为‘’里面的东西还是一个字符,所以里面还要用“” 而这两段 e.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & e.ProjectPath & "成绩数据.mdb;Persist Security Info=False" e.SelectString = "Select * From [订单] Where [日期] > #" & StartDate & "#" 它们不是表达式,只是一个字符串 表达式在Filter用得较多。 |
-- 作者:shxiaoya -- 发布时间:2009/7/3 8:55:00 -- 在sql里,日期也要用\'而不是# |