Ms access Microsoft Access 2016:使用按钮重置组合框(使用公式)的默认值?

Ms access Microsoft Access 2016:使用按钮重置组合框(使用公式)的默认值?,ms-access,combobox,vba,reset,default-value,Ms Access,Combobox,Vba,Reset,Default Value,我在重置按钮上有以下代码: Private Sub cmdReset_Click() Dim ctl As Control For Each ctl In Me.Controls Select Case ctl.ControlType Case acComboBox ctl.Value = ctl.DefaultValue End Select Next Me.Requer

我在重置按钮上有以下代码:

Private Sub cmdReset_Click()
    Dim ctl As Control

    For Each ctl In Me.Controls

        Select Case ctl.ControlType
            Case acComboBox
                ctl.Value = ctl.DefaultValue
        End Select
    Next
    Me.Requery
End Sub
这是组合框的默认值:

=DLookUp("FieldName","TableName","strCriteria")
当我单击“重置”按钮时,组合框只是将方程式显示为字符串
=DLookUp(“FieldName”、“TableName”、“strCriteria”)
,而不是实际运行函数。我尝试使用不同的默认值
=[cboName].[ItemData](#)
,这是相同的问题。表单在其他情况下工作得非常好


非常感谢您的帮助。

由于
ctl.DefaultValue
返回字符串默认值属性,而不是实际计算的默认值,因此该行为是预期的

一种可能的方法是使用
Eval
计算实际默认值。但是,请注意,执行此操作时可能会出现许多问题,因为默认值不是VBA,而是Access表达式,因此它具有不同的作用域,并且对区域设置(如列表分隔符设置)敏感

您可以使用以下行:

ctl.Value = Eval(Right(ctl.DefaultValue, Len(ctl.DefaultValue) -1))

对不起,我从未感谢你的帮助。非常感谢!