以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]高速合并中条件表达式如何写  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=195822)

--  作者:薛翁19480514
--  发布时间:2025/3/11 18:50:00
--  [求助]高速合并中条件表达式如何写
问题:合并分厂数据到总表。
条件:1-指定月份
      2-某科目及明细(一级科目1131和1133)

dim yf as integer = ..
dim flt1 as string = "[月份] = " & yf 
dim flt2 as string = "([科目代码] like \'1131%\' OR [科目代码] like \'1133%\')”
dim flt as string = flt1 & " And " & flt2 

Dim mg As New Merger
mg.SourcePath = "X:\\数据区\\环保设备厂2025.MDB"
mg.SourceTableName = "金额余额表"
mg.Filter = flt
mg.DataTableName = "各核算点余额表"
mg.Merge()

运行时提示:
语法错误(操作符丢失)在查询表达式‘([科目代码] like \'1131%\' OR [科目代码] like \'1133%\')’中

请问查询表达式该如何写。

请老师赐教,谢谢!


--  作者:有点蓝
--  发布时间:2025/3/11 19:50:00
--  
msgbox(flt )显示什么内容?
--  作者:薛翁19480514
--  发布时间:2025/3/12 9:04:00
--  
显示:
[月份]  = 1 AND  ([科目代码] like \'1131%\' OR [科目代码] like \'1133%\')

如果只有月份,运行正常
如果只有 “[科目代码] like \'1131%\'“ 也不能正常运行,提示 语法错误“Or”运算符前缺少操作数
如果是 “[科目代码] like \'1131%\' OR [科目代码] like \'1133%\'“ 同样提示 语法错误“Or”运算符前缺少操作数

以前也碰到过。

--  作者:有点蓝
--  发布时间:2025/3/12 9:37:00
--  
可能是输入了非半角的字符,把OR改为小写,然后前后的空格以及符号重新输入试试,注意输入的时候是不是半角状态
--  作者:薛翁19480514
--  发布时间:2025/3/12 10:45:00
--  
这个问题我碰到不至10次。
好几个本都试过了。
此路不通可绕行,需要写太多的代码,我已经因此耗费时间太多了。
可以这样考虑,是否是系统的BUG?


--  作者:有点蓝
--  发布时间:2025/3/12 10:58:00
--  
这个绝对不可能是bug。如果是偶尔,肯定是输错字符。

如果可以重现,请提供实例测试