Lotus DB文档导出:Db.Search多条件查询公式报错求助
排查Lotus DB Search公式的错误
我来帮你排查这个Search公式的问题,你的代码里有几个关键错误导致了公式语法异常:
- @Contains参数顺序错误:你把字段名写成了字符串字面量
"App1",这会让公式检查字符串"App1"里是否包含"Approved",而不是检查文档的App1字段。正确的写法是去掉字段名的引号,直接用字段名。 - 缺少逻辑连接运算符:两个条件之间你只用了空格,Lotus Notes公式里需要用
&&(逻辑与)或者AND来连接两个条件,否则公式无法识别这是两个需要同时满足的条件。 - 字符串拼接的语法问题:虽然LotusScript里用
&拼接字符串是对的,但拼接后的公式需要符合Notes公式语言的语法,你之前的拼接会生成无效的公式结构。
修正后的代码
Set GlobalCollection = db.Search("@Created > [01/01/2019] && @Contains(App1; ""Approved"")", Nothing, 0)
额外说明
- 如果你的
App1字段是富文本字段,@Contains可能无法正常工作,这时候可以考虑使用@Matches或者切换到FTSearch来实现全文搜索。 - 日期格式
[01/01/2019]依赖于服务器的区域设置,如果遇到日期解析错误,可以尝试使用标准的ISO格式,比如@Created > @Date(2019;1;1),这样兼容性更好。 - 确保
App1字段名的拼写完全正确,大小写要和文档中的字段名一致(Notes字段名是大小写不敏感的,但最好保持一致避免混淆)。
内容的提问来源于stack exchange,提问作者Maruthi
相关产品推荐
相关产品推荐

