设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2344|回复: 6
打印 上一主题 下一主题

[窗体] 如何使窗体的控件值保存为缺省值

[复制链接]
跳转到指定楼层
1#
发表于 2010-3-8 13:06:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我希望组合框里选择sub11并输入数据,然后又选择sub12继续输入完毕后,这时再选择sub11时,我希望先前在Sub11里输入的数据依然存在。

经别人提示,采用退出窗体时将所有控件值保存为默认值,这时再打开该窗体时,该控件的值就出现了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
7#
发表于 2010-3-11 13:49:13 | 只看该作者
问题没有完全解决,不能沉哈~~~
简 发表于 2010-3-10 22:17

请参见《保留控件值》一文。

点击这里给我发消息

6#
发表于 2010-3-11 13:46:29 | 只看该作者
如果窗体是绑定的,可以直接复制上一条记录
如果是非绑定的,多建个子窗体,只要不改变子窗体源对象,在关闭窗体前,数据都还在那里
5#
 楼主| 发表于 2010-3-10 22:17:34 | 只看该作者
问题没有完全解决,不能沉哈~~~
4#
发表于 2010-3-8 19:40:06 | 只看该作者
本帖最后由 todaynew 于 2010-3-8 19:42 编辑
我希望组合框里选择sub11并输入数据,然后又选择sub12继续输入完毕后,这时再选择sub11时,我希望先前在Sub11里输入的数据依然存在。

经别人提示,采用退出窗体时将所有控件值保存为默认值,这时再打开该窗体时, ...
简 发表于 2010-3-8 13:06





用了一个比较笨的办法,不知道是否还有更简单的方法。

Public Function ctlval(frm As Form)
'功能:保存窗体控件值。
'说明:1、使用时,在窗体中增加一个关闭按钮,

'          在按钮事件中调用此函数:Call ctlval(me.form)。
'          特别注意不能在窗体的关闭或者卸载事件中调用该函数,否则会报错。
'     2、如窗体存在子窗体,则需在此基础上修改代码,

'         以保持子窗体控件的默认值。
Dim frmname As String
Dim ctls As Controls
Dim B As Boolean
Dim i As Long, j As Long
Dim A()
'1、获得控件值,并存于数组中。
frmname = frm.Name
frm.Repaint
Set ctls = frm.Controls
j = 0
For i = 0 To ctls.Count - 1
    B = ctls(i).ControlType = acComboBox
    B = B Or ctls(i).ControlType = acComboBox
    B = B Or ctls(i).ControlType = acListBox
    B = B Or ctls(i).ControlType = acTextBox
    If B = True Then
        j = j + 1
        ReDim Preserve A(2, j)
        A(0, j - 1) = ctls(i).Name
        A(1, j - 1) = Nz(ctls(i).Value, "")
    End If
Next
'2、在窗体设计视图中设置控件默认值
DoCmd.OpenForm frmname, acDesign
Forms(frmname).Visible = False
Set ctls = Forms(frmname).Controls
For i = 0 To UBound(A, 2) - 1
    ctls(A(0, i)).DefaultValue = "'" & A(1, i) & "'"
Next
'3、关闭窗体并保留默认值修改结果
DoCmd.Close acForm, frmname, acSaveYes
End Function

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2010-3-8 19:37:58 | 只看该作者
回楼上的,如果控件只有三五个,都还好办,如果是三五十个控件,我挨个挨个的写,好麻烦呢。
2#
发表于 2010-3-8 13:43:24 | 只看该作者
例如:
Private Sub 地点_AfterUpdate()
    地点.DefaultValue = """" & 地点 & """"
End Sub
其中"地点"为一个文本框或组合框的名称
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-11 01:20 , Processed in 0.076136 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表