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))
我在重置按钮上有以下代码:
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))