我不是 Access 专家,我有一个(我希望!)简单的问题......
我有一个包含许多记录的表格。在某些文本框中,我只显示基础表中的值 - 因此它们绑定(bind)到相应的字段。
但是一些文本框应该包含计算值。有些计算很复杂,涉及表中的许多字段。我将计算编写为 VBA 函数。我可以输入这样的内容作为“控制源”:
=MyFunction([Field1], [Field2], [Field3] ...)
但我不想在函数调用中列出几十个字段。相反,我想将整个表单(或当前记录)作为参数发送,并让函数引用它需要的字段。我可以这样做:
=MyFunction([Forms]![MyForm])
但我不喜欢在通话中命名表格。没有办法将“当前形式”作为函数参数发送吗?在 VBA 中,您只需使用“Me”关键字,例如“Me![Field1]”。但似乎“我”在表达式中不被接受。
是否有其他方法可以在表达式中引用当前形式?
(我知道这是一个表面问题。但是使用“[Form]![MyForm]”并不是一个好的编程。稍后您将控件复制到另一个表单并忘记更改表达式中的名称......)
感谢您的帮助! :-)
/安德斯
最佳答案
您可以使用:
=MyFunction([Form])
代码将是:
Function MyFunction(frm As Form)
MsgBox frm.Name
End Function
关于forms - 如何在 Microsoft Access 的表达式中引用当前表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787979/