|
本帖最后由 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
|