以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  条件表达式设置错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92251)

--  作者:13055984798
--  发布时间:2016/10/30 12:01:00
--  条件表达式设置错误
当表1中的日期列和单位列发生改变时,表2的日期列和单位列如无对应行就新增一行。在表1的beforesaverow事件中设代码如下:
dim dr as datarow
dr = datatables("表2“).find("日期 = ‘“ & currenttable.current"日期” & “’” and "单位 = ‘“ & currenttable.current"单位” & “’”)
if dr is nothing then
datatables("表2“).addnew
end if
电脑就提示:代码 "日期 = ‘“ & currenttable.current"日期” & “’” and "单位 = ‘“ & currenttable.current"单位” & “’”  转换无效。
如果把代码"日期 = ‘“ & currenttable.current"日期” & “’” and "单位 = ‘“ & currenttable.current"单位” & “’” 分成"日期 = ‘“ & currenttable.current"日期” & “’ 或 "单位 = ‘“ & currenttable.current"单位” & “’”,电脑不会报错。为何合在一起就报错?请老师指教!

--  作者:狐狸爸爸
--  发布时间:2016/10/30 12:52:00
--  
dr = datatables("表2“.find("日期 = #“ & currenttable.current"日期”) & “# and "单位 = ‘“ & currenttable.current"单位”) & “’”)

还有如果是表事件,事件代码不应该出现CurrentTable,也不应该出现Current,应该用事件e参数:

http://www.foxtable.com/webhelp/scr/0604.htm


--  作者:13055984798
--  发布时间:2016/10/30 15:13:00
--  
老师:我按照您的方法进行了验证,问题没有得到解决。验证分四次:
一、代码为:dr = datatables("表2“).find("日期 = #“ & currenttable.current"日期”) & “# and "单位 = ‘“ & currenttable.current"单位”) & “’”)
二、代码为:dr = datatables("表2“).find("日期 = ‘“ & e.datarow("日期”) & “\'" and "单位 = ‘“ & e.datarow("单位”) & “’”)
三、代码为:dr = datatables("表2“).find("日期 = ‘“ & e.datarow("日期”) & “\'" )
四、代码为:dr = datatables("表2“).find( "单位 = ‘“ & e.datarow("单位”) & “’”)
前两次电脑均表示条件表达式有错误,后两次电脑没有错误提示。
问题到底出在哪儿?请版主老师指点。

--  作者:13055984798
--  发布时间:2016/10/30 20:19:00
--  

老师:我按照您的方法进行了验证,问题没有得到解决。验证分四次:
一、代码为:dr = datatables("表2“).find("日期 = #“ & currenttable.current"日期”) & “# and "单位 = ‘“ & currenttable.current"单位”) & “’”)
二、代码为:dr = datatables("表2“).find("日期 = ‘“ & e.datarow("日期”) & “\'" and "单位 = ‘“ & e.datarow("单位”) & “’”)
三、代码为:dr = datatables("表2“).find("日期 = ‘“ & e.datarow("日期”) & “\'" )
四、代码为:dr = datatables("表2“).find( "单位 = ‘“ & e.datarow("单位”) & “’”)
前两次电脑均表示条件表达式有错误,后两次电脑没有错误提示。
问题到底出在哪儿?请老师指点。


--  作者:有点蓝
--  发布时间:2016/10/31 9:29:00
--  
多余的双引号

dr = DataTables("表2").find("日期 = \'" & e.DataRow("日期") & "\' and 单位 = \'" & e.DataRow("单位") & "\'")
--  作者:13055984798
--  发布时间:2016/10/31 10:56:00
--  
如删掉双引号,电脑就不能运行代码。原来的代码可以运行,只是电脑提示字符串转换错误。且原来的代码如拆开运行,没有错误提示,合起来运行就出现错误。
--  作者:有点蓝
--  发布时间:2016/10/31 11:27:00
--  
电脑就不能运行代码是什么意思,查不到数据?那说明没有符合条件的数据,和代码没有关系。
--  作者:13055984798
--  发布时间:2016/10/31 11:49:00
--  
如将双引号删除,双引号后面的语句代码变灰色了。按“确定”键后,电脑提示语句错误。
--  作者:13055984798
--  发布时间:2016/10/31 12:55:00
--  
现在可以了。我把单引号and字符前面的双引号删掉,保留单引号前面的双引号,再删掉[单位]前面的双引号就可以了。
--  作者:13055984798
--  发布时间:2016/10/31 13:00:00
--  
谢谢老师指点!图片点击可在新窗口打开查看