从复制回旋

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" 是目标表单的名称。