2017-10-17 70 views
0

有沒有一種方法可以快速地將表單的所有屬性轉換爲新的表單而不直接複製對象(Ctrl-C & V等)?回覆表格複製

編輯:期待複製到一個完全不同的Access數據庫。

+0

我只是複製並粘貼表單,然後刪除它上的所有控件(和VBA代碼,如果有的話)。 Andre

+0

很多這些答案都很好,但我想我應該提到我的意思是將表單從一個訪問數據庫複製到完全不同的表單中。 –

+0

然後**導入**表單,然後刪除您不需要的所有內容。 – Andre

回答

1

在設計視圖中打開每個表單,將它們設置爲等於對象變量,然後將源表單的屬性設置爲等於目標表單的proeprties。使用公共模塊中這樣的功能可按:

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 

如果它不是一個一次性的項目,我會加入一些代碼來檢查,打開表單,如果他們不是已經打開。

+0

請注意,諸如表單模塊和控件之類的複雜屬性並非易於複製 –

+0

不期望複製控件,如組合框或按鈕。但我正在尋找複製諸如「默認視圖:連續」,高度,BG顏色和記錄源(通過它們的表名或SQL語句)的東西 –

0

File > Options > Object Designers > Form/Report Design View > Form template.

設置表單模板到現有形式的名稱,將被用於所有的新形式。

0

您可以使用VBA以比DataWriter建議的方式更簡單的方式複製表單對象。

您可以使用下面的語句在即時窗口:

DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentProject.FullName, acForm, "Form1", "Form1_Copy" 

哪裏"Form1"是源代碼形式的名稱,"Form1_Copy"是目標表單的名稱。

+0

這是將表單本身複製到新數據庫中的最佳方法。但是,如果他有興趣複製表單屬性而不導入表單,則需要自動化。 – DataWriter

+0

@DataWriter您可以使用它將表單複製到同一個數據庫中。沒有理由限制新數據庫。當然,如果你想刪除所有表單控件,這是一個額外的小操作。通常,複製所有內容並刪除不需要的內容比僅複製所需內容要容易。 –