我想知道在MS Access上的Saved Query中,是否可以使用WHERE子句从独立于MS Access安装语言的Form中获取值?
在一个应该等于表单中文本的MSSQLQUERYWHERE子句中,我这样写
= Form!Form_name!text_name
如果所有用户都安装了MS英语版本,这就可以了,但在我的情况下,这不是真的,因为有些用户安装了葡萄牙语版本。在他们的版本中,调用相同语法的正确方法应该是:
= Formulários!Form_name!text_name
因此,问题是Access无法识别这种正在考虑的语言版本。因此,如果葡萄牙版本的用户尝试运行查询,它将弹出一个插入框。
我查阅了很多资料,但没有一个能帮助我解决这个问题。
提前感谢大家!
我无法对此进行测试,因为我没有葡萄牙语版本的Access,但我避免调用表单参数,因为它们很脆弱。例如,表单必须打开,或者查询以两种方式失败。如果我必须使用表单的参数,我会将参数封装在公共函数中(通常在该表单的代码后面(即使在设计器中,公共函数通常也会被intellisense获取,但公共变量不会
我的风格是合成一个具有私有全局作用域变量和公共get和set函数的属性。然后在设计器中,您可以调用:getmyforms属性,而不是Form!表单名称!text_name。当窗体打开和关闭时,我通常调用set-myforms属性,并将其设置为等于实际的窗体属性。通过这种方式,您还可以获得包裹的优点。例如,您可以选择在表单关闭时返回什么值,而不仅仅是让查询失败。