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

Microsoft Access 2016: Resetting Default Value of Combo Box (that uses equation) with Button?

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

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 returns 字符串默认值 属性,而不是实际计算的默认值。

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

您可以使用以下行:

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