从复制回旋
Round about Form Copying
有没有一种方法可以在不直接复制对象(Ctrl-C&V 等)的情况下快速将表单的所有属性模拟到新表单中?
编辑:希望复制到一个完全不同的 Access 数据库中。
在设计视图中打开每个窗体,将它们设置为对象变量,然后将源窗体的属性设置为目标窗体的属性。在 public 模块中使用这样的函数:
Public Sub UpdateForm(SourceForm as string, DestinationForm as string)
dim frm1 as new form
dim frm2 as new form
set frm1 = forms(SourceForm)
set frm2 = forms(DestinationForm}
'* List the properties you want to copy here:
With form2
.RecordSource = frm1.RecordSource
.Caption = frm1.Caption
.DataEntry = frm1.DataEntry
'* And so on for each property
End With
docmd.save acform, DestinationForm
End Sub
如果这不是一次性项目,我会包含一些代码来检查并打开尚未打开的表单。
File > Options > Object Designers > Form/Report Design View > Form template.
将表单模板设置为现有表单的名称,并将用于所有新表单。
您可以使用 VBA 以比 DataWriter 建议的方式稍微简单的方式复制表单对象。
可以在立即使用下面的语句window:
DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentProject.FullName, acForm, "Form1", "Form1_Copy"
其中 "Form1"
是源表单的名称,"Form1_Copy"
是目标表单的名称。
有没有一种方法可以在不直接复制对象(Ctrl-C&V 等)的情况下快速将表单的所有属性模拟到新表单中?
编辑:希望复制到一个完全不同的 Access 数据库中。
在设计视图中打开每个窗体,将它们设置为对象变量,然后将源窗体的属性设置为目标窗体的属性。在 public 模块中使用这样的函数:
Public Sub UpdateForm(SourceForm as string, DestinationForm as string)
dim frm1 as new form
dim frm2 as new form
set frm1 = forms(SourceForm)
set frm2 = forms(DestinationForm}
'* List the properties you want to copy here:
With form2
.RecordSource = frm1.RecordSource
.Caption = frm1.Caption
.DataEntry = frm1.DataEntry
'* And so on for each property
End With
docmd.save acform, DestinationForm
End Sub
如果这不是一次性项目,我会包含一些代码来检查并打开尚未打开的表单。
File > Options > Object Designers > Form/Report Design View > Form template.
将表单模板设置为现有表单的名称,并将用于所有新表单。
您可以使用 VBA 以比 DataWriter 建议的方式稍微简单的方式复制表单对象。
可以在立即使用下面的语句window:
DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentProject.FullName, acForm, "Form1", "Form1_Copy"
其中 "Form1"
是源表单的名称,"Form1_Copy"
是目标表单的名称。