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 作者: 简 时间: 2010-3-10 22:17
问题没有完全解决,不能沉哈~~~作者: t小宝 时间: 2010-3-11 13:46
如果窗体是绑定的,可以直接复制上一条记录
如果是非绑定的,多建个子窗体,只要不改变子窗体源对象,在关闭窗体前,数据都还在那里作者: todaynew 时间: 2010-3-11 13:49