Office中国论坛/Access中国论坛
标题:
求助:如何在vba中输入双引号"这个字符
[打印本页]
作者:
zrj898
时间:
2012-7-7 15:17
标题:
求助:如何在vba中输入双引号"这个字符
本帖最后由 zrj898 于 2012-7-7 15:22 编辑
如下语句:
Set rsR = New ADODB.Recordset
sql = "SELECT (count(r.PointID)*"
sql = sql & Trim(主窗口.TB01.Text) & "-" & 主窗口.TB01.Text & ")"
sql = sql & "/1000 AS 公里数" & " ,count(r.PointID) as 点数 "
sql = sql & "FROM Result AS r WHERE r.type in ('G','S') and r.OBS_Time<>' ' GROUP BY datepart(
"ww"
," & "#" & r.OBS_Time & "#)"
那个"ww"两侧的"号被当作本条语句的界定符而不是我要用到的字符
我发现问题是我在vba中不能把双引号当字符使用 比如"datepart("ww"," & "#" & r.OBS_Time & "#)"中"ww"两侧的引号不能当作字符使用。
作者:
roych
时间:
2012-7-8 04:56
本帖最后由 roych 于 2012-7-8 04:58 编辑
1、改用单引号:
Set rsR = New ADODB.Recordset
sql = "SELECT (count(r.PointID)*"
sql = sql & Trim(主窗口.TB01.Text) & "-" & 主窗口.TB01.Text & ")"
sql = sql & "/1000 AS 公里数" & " ,count(r.PointID) as 点数 "
sql = sql & "FROM Result AS r WHERE r.type in ('G','S') and r.OBS_Time<>' ' GROUP BY datepart('ww',#" & r.OBS_Time & "#)"
复制代码
2、改成转义字符(个人不太赞成这种玩法,很容易出错)
Set rsR = New ADODB.Recordset
sql = "SELECT (count(r.PointID)*"
sql = sql & Trim(主窗口.TB01.Text) & "-" & 主窗口.TB01.Text & ")"
sql = sql & "/1000 AS 公里数" & " ,count(r.PointID) as 点数 "
sql = sql & "FROM Result AS r WHERE r.type in ('G','S') and r.OBS_Time<>' ' GROUP BY datepart(""WW"",#" & r.OBS_Time & "#)"
复制代码
如果上述字符串测试出错(可能出现拼写或者落下半边字符串等情况),请参考下面的代码,适当地换过来:
'单引号
Sub test()
t = "2012-7-8"
s = "datepart('WW',#" & t & "#)"
Debug.Print s
End Sub
'转移字符
Sub test()
t = "2012-7-8"
s = "datepart(""WW"",#" & t & "#)"
Debug.Print s
End Sub
复制代码
作者:
t小宝
时间:
2012-7-8 21:42
本帖最后由 t小宝 于 2012-7-8 21:43 编辑
要多输一个双引号。
比如想输出一个双引号,须输入两个双引号,想输出两个双引号,须输入三个双引号
debug.Print """你好""""
会输出:"你好""
作者:
zrj898
时间:
2012-7-14 12:05
在语句中,当我输入3个双引号,自动订正功能会把它变成4个双引号{:soso_e100:}
作者:
zrj898
时间:
2012-7-14 12:15
版主的意思是先用别的字符再替换掉是吧 !这个应该可以!谢谢了!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3