Foxtable(狐表)用户栏目专家坐堂 → [讨论] 关于双引号和单引号,不太明白!


  共有18087人关注过本帖树形打印复制链接

主题:[讨论] 关于双引号和单引号,不太明白!

帅哥哟,离线,有人找我吗?
wcs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
[讨论] 关于双引号和单引号,不太明白!  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/2 23:23:00 [只看该作者]

SelectString中间没有字符,要单引号干什么?

表达式中,字符用单引号,日期用符号#

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/7/2 23:33:00 [只看该作者]

" & Customer & "  是字符

" & StartDate & "  不是字符

为什么?他们有什么不同吗?如何理解?

Customer和StartDate都是自己定义的变量,为什么上面的是字符,下面的不是字符了?

 回到顶部
美女呀,离线,留言给我吧!
shaof
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:491 威望:0 精华:0 注册:2008/9/11 15:30:00
  发帖心情 Post By:2009/7/2 23:52:00 [只看该作者]

很显然,第一段代码是筛选客户,客户是字符。
第二段是加载符合条件的日期,日期当然不能用单引号,只能用#号。

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/7/3 8:24:00 [只看该作者]

这也是帮助中的一段:

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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/3 8:29:00 [只看该作者]

这又不是表达式,这是一个普通的字符串。

表达式本身是一个字符,用双引号,同时表达式是一个计算公式,会包括有数值、日期、字符等值,其中字符用单引号,日期用#,数值直接使用。

[此贴子已经被作者于2009-7-3 8:30:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/7/3 8:43:00 [只看该作者]

这样对比起来看应该更明了:

Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")
将条件表达式用实例数据表示:
Total = DataTables("订单").Compute("Sum(数量)", [客户] = '张三')


 回到顶部
美女呀,离线,留言给我吧!
shxiaoya
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1442 威望:0 精华:2 注册:2008/9/7 21:30:00
  发帖心情 Post By:2009/7/3 8:50:00 [只看该作者]

Total = DataTables("订单").Compute("Sum(数量)", "[客户] = '" & Customer & "'")

这样标注一下(红色部分)你应该能看明白吧
[此贴子已经被作者于2009-7-3 8:54:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1442 威望:0 精华:2 注册:2008/9/7 21:30:00
  发帖心情 Post By:2009/7/3 8:55:00 [只看该作者]

在sql里,日期也要用'而不是#

 回到顶部
总数 11 1 2 下一页