我有一个使用Access 2013的数据库,但我必须保持与Access 2010的兼容性;我使用的是Windows 7。
我有一个输入表单设置为Pop Up = Yes,Modal = No.当直接从导航窗格打开此输入表单时,它正常运行。
我在搜索表单中有一个宏,它使用" OpenForm"来调用带有指定记录的输入表单。行动。当用这个宏打开输入表单时,表单的背景是完全乱码的(它从被调用后面的任何内容中提取背景图像,就好像它是透明的),并且所有标签都是不可读的。
也就是说,如果我通过尝试打开另一条记录再次运行宏,那么表单就会正确显示,直到它关闭为止。另外,如果我更改"窗口模式"在" OpenForm"行动到"对话"而不是"正常,"它显得正确。
这些都不是有效的解决方案 - 它应该是第一次工作,我不希望表单是模态的。我的所有代码似乎都没问题(因为我没有收到错误消息),所以我不明白为什么会这样做...非常感谢任何指导。
答案 0 :(得分:1)
我已经发现导致这个问题的原因,但我不明白为什么。
我使用的宏来自示例数据库,并且有一些我不太熟悉的命令。一个这样的命令是“Requery。”
我尝试删除宏的各个部分,窗口模式为“OpenForm”命令的“Normal”。一旦我尝试删除“Requery”(没有别的),窗口就会以“正常”模式打开而不会出现任何失真。
简而言之,在宏中使用“Requery”是导致此错误发生的原因。这似乎是一个无害的动作(它只是根据我的理解刷新数据,如同这里描述:https://msdn.microsoft.com/en-us/library/bb177360(v=office.12).aspx),但是因为我不明白为什么它的包含是必要的(如果有人能说明这一点,我们将不胜感激),看起来这基本上已经解决了。
我希望将来可以帮助其他人!