【发布时间】:2013-12-17 01:18:21
【问题描述】:
我在 MS Access 2010 数据库中有一个数据输入表单,它绑定到一个名为 CommunicationTable 的表,该表又包含一个主键 CommunicationNumber、一个外键 ClientNumber 和一个名为 @987654324 的字段@。当用户打开表单时,ClientNumber 会自动填充到名为 ClientNumber 的文本框中。我希望Level 文本框显示一个默认值,该默认值等于CommunicationTable 中指定ClientNumber 的最新记录中为Level 记录的值(最高CommunicationNumber 值)。我该如何设置?
这是我目前在表单属性表中Level 文本框的默认值表达式构建器中使用的代码:
=DLookUp([Level],[CommunicationTable],[CommunicationNumber]=DMax([CommunicationNumber],[CommunicationTable],[ClientNumber]=[Me].[ClientNumber]))
当我使用有效的ClientNumber 加载表单时,此代码给出了一个空值。我认为这可能是由于DMax() 函数产生了即将添加到CommunicationTable 的当前(空白)行,但是当我使用以下代码时,我得到了相同的空结果:
=DLookUp([Level],[CommunicationTable],[CommunicationNumber]=DMax([CommunicationNumber],[CommunicationTable],[ClientNumber]=[Me].[ClientNumber])-1 )
如何更改此表达式,以便它为CommunicationTable 中的指定ClientNumber 提供最新的Level 值?
编辑:
我尝试了以下方法,但它给出了 #type! 错误:
=DLookUp("[Level]","[CommunicationTable]","CommunicationNumber= " &
DMax("CommunicationNumber","[CommunicationTable]","[ClientNumber]=
" & [Forms]![Main]![NavigationSubform].[Form]![ClientNumber] & ""))
请注意,表单中的 ClientNumber 文本框本身是使用以下表达式填充的:
[Forms]![Main]![NavigationSubform].[Form]![ClientNumber]
【问题讨论】:
标签: ms-access vba ms-access-2010