我看了帮助中的这样两段代码:
第一个:
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编辑过]
SelectString中间没有字符,要单引号干什么?
表达式中,字符用单引号,日期用符号#
" & Customer & " 是字符
" & StartDate & " 不是字符
为什么?他们有什么不同吗?如何理解?
Customer和StartDate都是自己定义的变量,为什么上面的是字符,下面的不是字符了?
很显然,第一段代码是筛选客户,客户是字符。
第二段是加载符合条件的日期,日期当然不能用单引号,只能用#号。
这也是帮助中的一段:
If e.name = "成绩" Then
e.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & e.ProjectPath & "成绩数据.mdb;Persist Security Info=False"
End if
" & e.ProjectPath & " 这不是日期,它只是一串字符,表示地址。
为什么它没有用‘’呢?
[此贴子已经被作者于2009-7-3 8:25:51编辑过]
这又不是表达式,这是一个普通的字符串。
表达式本身是一个字符,用双引号,同时表达式是一个计算公式,会包括有数值、日期、字符等值,其中字符用单引号,日期用#,数值直接使用。
[此贴子已经被作者于2009-7-3 8:30:26编辑过]
这样对比起来看应该更明了:
Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")
将条件表达式用实例数据表示:
Total = DataTables("订单").Compute("Sum(数量)", [客户] = '张三')
Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")这样标注一下(红色部分)你应该能看明白吧
[此贴子已经被作者于2009-7-3 8:54:06编辑过]
明白了,表达式里会出现‘’
因为表达式是一个计算公式,里面有数值、日期、字符等值,字符要用‘’,日期要用##,数字直接使用
因为‘’里面的东西还是一个字符,所以里面还要用“”
而这两段 e.
ConnectionString =
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
& e.
ProjectPath
&
"成绩数据.mdb;Persist Security Info=False"
e.SelectString = "Select * From [订单] Where [日期] > #" & StartDate & "#"
它们不是表达式,只是一个字符串
表达式在Filter用得较多。