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

Microsoft Access窗体关闭重开后文本框值无法保存求助

在Microsoft Access中保留窗体关闭重开后文本框的值

方法1:用数据表持久化存储

  • 新建一张单记录的配置表(比如叫用户配置表),添加一个和文本框数据类型匹配的字段(例如文本框保存值),手动添加一条记录(ID设为1方便后续定位)。
  • 在窗体的关闭事件中添加VBA代码,把文本框当前值写入表:
Private Sub Form_Close()
    ' 文本类型用单引号包裹,数字类型直接去掉单引号,日期类型用#包裹
    CurrentDb.Execute "UPDATE 用户配置表 SET 文本框保存值 = '" & Me.你的文本框名称 & "' WHERE ID=1"
End Sub
  • 在窗体的加载事件中读取表中存储的值,赋值给文本框:
Private Sub Form_Load()
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT 文本框保存值 FROM 用户配置表 WHERE ID=1")
    If Not rs.EOF Then
        Me.你的文本框名称 = rs!文本框保存值
    End If
    rs.Close
    Set rs = Nothing
End Sub

方法2:通过全局变量结合默认值属性临时保留

这个方法仅在Access进程未关闭时有效,重启Access后值会丢失:

  • 新建一个标准模块,定义全局变量:
Public g_SavedTextBoxVal As Variant
  • 窗体关闭时把文本框值存入全局变量:
Private Sub Form_Close()
    g_SavedTextBoxVal = Me.你的文本框名称.Value
End Sub
  • 窗体加载时,将全局变量赋值给文本框的默认值属性:
Private Sub Form_Load()
    If Not IsEmpty(g_SavedTextBoxVal) Then
        ' 文本类型需要用双引号包裹,数字类型直接赋值
        Me.你的文本框名称.DefaultValue = """" & g_SavedTextBoxVal & """"
    End If
End Sub

方法3:用注册表跨会话保留值

如果需要关闭Access后再次打开仍能保留值,可使用注册表存储:

  • 窗体关闭时写入注册表:
Private Sub Form_Close()
    ' 自定义应用名称、配置项名称,替换成自己的内容
    SaveSetting "我的Access工具", "窗体配置", "文本框留存值", Me.你的文本框名称.Value
End Sub
  • 窗体加载时读取注册表值:
Private Sub Form_Load()
    Dim savedVal As String
    savedVal = GetSetting("我的Access工具", "窗体配置", "文本框留存值", "")
    If savedVal <> "" Then
        ' 非文本类型需转换,比如数字用CLng(savedVal),日期用CDate(savedVal)
        Me.你的文本框名称.Value = savedVal
    End If
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:52:11