ms-access - 组合框设置默认值

标签 ms-access combobox vba ms-access-2003

我有一个表单,其中包含一个带有员工列表的组合框。我想在下次打开此组合框时将上次选择的值设置为默认值。下面是我的代码,但不起作用。

    Private Sub combobox_AfterUpdate()
    newDefault = Form_Calc.combobox.Text
    Form_Calc.combobox.DefaultValue = newDefault
    End Sub 

该列表包含完整的姓名,例如:“John Snow”;“Mary Jane Johnson”;“etc”

有人吗?

最佳答案

.Text 属性仅在组合具有焦点时可用。在任何其他时间,您都必须使用其 .Value 属性。

这适用于我的组合框,并且可以满足我认为您要求的要求。

Private Sub cboAccountID_AfterUpdate()
    Me.cboAccountID.DefaultValue = Me.cboAccountID.Value
    MsgBox "DefaultValue: " & Me.cboAccountID.DefaultValue
End Sub

该方法将按照您的意愿保留 DefaultValue,直到您关闭表单。但您想在下次打开表单时再次使用最后一个值。

在这种情况下,您可以在 Form_Close 中保存该值,并在下次在 Form_Load 中恢复它。

我使用表来存储用户选项值。我有这个查询,qryUpdateOption,来更新保存的值。

PARAMETERS pKey Text ( 255 ), pValue Text ( 255 );
UPDATE tblOptions AS o
SET o.option_value = [pValue]
WHERE o.option_key=[pKey];

因此,在 Form_Close 处,我可以保存 cboAccountID.DefaultValue 的当前值。

Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = currentd
Set qdf = db.QueryDefs("qryUpdateOption")
qdf.Parameters("pValue").value = Me.cboAccountID.DefaultValue
qdf.Parameters("pKey").value = "cboAccountID.DefaultValue"
qdf.Execute dbFailOnError

Form_Load 中,我可以检索该值并将其分配给 cboAccountID.DefaultValue

Me.cboAccountID.DefaultValue = DLookup("option_value", _
    "tblOptions", "option_key='cboAccountID.DefaultValue'")

请注意,此建议假设tblOptions 中存在带有“cboAccountID.DefaultValue” 键的行。您可能需要完善此概述的建议。

我认为它可以为您工作,因为您的每个用户都有自己的数据库文件,其中包含表单和数据......您不需要担心一个用户覆盖另一个用户保存的首选项。

关于ms-access - 组合框设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21315684/

相关文章:

excel - 为什么它在工作时会显示错误

image - 在 Excel 中使用 VBA 设置图像透明度

ms-access - ms-access 中的相对表链接

vba - Access 2010 VBA 错误 2425 "The expression you entered has a function name that database can' t 查找”

sql - 选择不同的和另一列 id

ms-access - 我可以在 MS Access 查找功能中使用 "not equal"

html - 如何仅使用 CSS 设置 <select> 下拉菜单的样式?

JQuery UI - 如何将更改事件绑定(bind)到组合框?

javascript - 如何从剑道组合框获取值(value)

vba - Excel VBA 在宏运行时突然进入设计模式