我目前正在将所有Access数据库移动到MySQL服务器。我有一些非常大的查询,我想转换成sql direct。
唯一的问题是,在这些查询中,我使用的是表单中文本框的内容:
IIf(IsNull([Formulaires]![DialogueMAJDossier]![FiltreTypeEntree]),[TypeDossier],[Formulaires]![DialogueMAJDossier]![FiltreTypeEntree])
(请原谅我所有的法语名字)
我知道当我将其转换为MySQL语法时,应该给出类似这样的内容:
IFNULL(`Formulaires`.`DialogueMAJDossier`.`FiltreTypeEntree`, `TypeDossier`)
但我不知道如何在查询中考虑文本框值。
欢迎任何帮助
答案 0 :(得分:0)
传递查询不能包含参数,因此您必须使用解决方法。
选项1:
在模板表中使用“变量”保存SQL,例如SELECT foo, {FiltreTypeEntree} FROM bar
。
然后在执行Pass-Through查询之前,读取模板SQL,Replace()
变量以及IIf
表达式的结果,并使用最终字符串设置查询的.SQL
属性。
选项2:
在MySql中创建“变量”表。通过代码填写其字段,并让您的Pass-Through查询连接此表以获取变量值。
在多用户场景中,您必须为选项2引入某种会话管理,因此在这种情况下我会使用(1)。