You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Access窗体ExchangeRate文本框默认值设为上次输入值

实现Access窗体ExchangeRate文本框持久化默认值

要让ExchangeRate文本框记住上次输入的值,作为默认值(重启数据库后仍保留),可以通过存储配置值的方式实现,以下是两种实用方案:

方案一:使用配置表存储(直观易维护)

1. 创建配置表

新建一张名为tbl_Config的表,字段设置如下:

  • ConfigID:自动编号,主键
  • ConfigName:文本型(长度50),用于标识配置项,比如DefaultExchangeRate
  • ConfigValue:双精度型,用于存储汇率值

2. 添加窗体VBA代码

打开frm_Amounts的VBA编辑器,添加以下事件代码:

窗体加载事件(读取默认值)

Private Sub Form_Load()
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT ConfigValue FROM tbl_Config WHERE ConfigName='DefaultExchangeRate'")
    
    '如果存在已保存的汇率,设置为文本框默认值并显示
    If Not rs.EOF Then
        Me.ExchangeRate.DefaultValue = rs!ConfigValue
        Me.ExchangeRate.Value = rs!ConfigValue
    End If
    
    rs.Close
    Set rs = Nothing
End Sub

ExchangeRate文本框更新后事件(保存新值)

Private Sub ExchangeRate_AfterUpdate()
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_Config WHERE ConfigName='DefaultExchangeRate'")
    
    If rs.EOF Then
        '首次输入,新增配置记录
        rs.AddNew
        rs!ConfigName = "DefaultExchangeRate"
        rs!ConfigValue = Me.ExchangeRate.Value
        rs.Update
    Else
        '更新已有配置记录
        rs.Edit
        rs!ConfigValue = Me.ExchangeRate.Value
        rs.Update
    End If
    
    rs.Close
    Set rs = Nothing
    '更新文本框默认值,后续新增记录自动使用该值
    Me.ExchangeRate.DefaultValue = Me.ExchangeRate.Value
End Sub

方案二:使用注册表存储(无需额外建表)

利用Access内置的SaveSetting和GetSetting函数,将值存在系统注册表中:

添加窗体VBA代码

窗体加载事件

Private Sub Form_Load()
    Dim defaultRate As Double
    '读取注册表中的汇率值,默认值为0(首次打开时为空)
    defaultRate = GetSetting("MyAccessExchangeApp", "Settings", "ExchangeRate", 0)
    
    If defaultRate <> 0 Then
        Me.ExchangeRate.DefaultValue = defaultRate
        Me.ExchangeRate.Value = defaultRate
    End If
End Sub

ExchangeRate文本框更新后事件

Private Sub ExchangeRate_AfterUpdate()
    '将当前汇率保存到注册表
    SaveSetting "MyAccessExchangeApp", "Settings", "ExchangeRate", Me.ExchangeRate.Value
    '更新文本框默认值
    Me.ExchangeRate.DefaultValue = Me.ExchangeRate.Value
End Sub

注意事项

  • 确保Amount_US$的控件来源设置为=[Amount_EUR]*[ExchangeRate],保证计算逻辑正常运行
  • 方案一中,首次打开窗体时tbl_Config无对应记录,ExchangeRate文本框为空,输入后会自动创建配置记录
  • 方案二中,注册表路径为HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MyAccessExchangeApp\Settings,可通过注册表编辑器查看

内容的提问来源于stack exchange,提问作者YousifKI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:21:58