(Access) 的 Application.CreateControl 方法
CreateControl方法會在指定的開啟表單上建立控制項。 例如,假設您要建置自訂精靈,讓使用者能夠輕鬆地建構特定表單。 在精靈中使用 CreateControl 方法,將適當的控制項新增至表單。
語法
運算式。CreateControl (FormName, ControlType, Section, Parent, ColumnName, Left, Top, Width, Height)
expression 代表 Application 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
FormName | 必要 | 字串 | 要在其中建立控制項的開啟表單或開啟報表的名稱。 |
ControlType | 必要 | AcControlType | AcControlType 常數,表示您想要建立的控制項類型。 |
Section | 選用 | AcSection | AcSection常數,識別將包含新控制項的區段。 |
Parent | 選用 | Variant | 附加控制項的上一層控制項名稱。 對於沒有父控制項的控制項,請針對這個引數使用零長度字串或省略它。 |
ColumnName | 選用 | Variant | 如果控制項要是資料繫結控制項,則為該控制項所系結的功能變數名稱。 |
Left,Top | 選用 | Variant | 控制項左上角的座標,以 twip 為單位。 |
Width, Height | 選用 | Variant | 數值運算式,以 Twip 為單位指示控制項的寬度及高度。 |
傳回值
控制措施
註解
在自訂精靈中使用 CreateControl 和 CreateReportControl 方法,在表單或報表上建立控制項。 這兩種方法都會傳回 Control 物件。
僅在表單設計檢視或報表設計檢視中,分別使用 CreateControl 和 CreateReportControl 方法。
您可以使用 Parent 引數來識別主要控制項與從屬控制項之間的關聯性。 例如,如果文字方塊有附加標籤,則文字方塊為主控制項 (或上層控制項),而標籤則為附屬控制項 (或子控制項)。 當您建立標籤控制項時,將其 Parent 引數設定為識別父控制項名稱的字串。 當您建立文字方塊時,請將其 Parent 引數設定為零長度字串。
當您建立核取方塊、選項按鈕或切換按鈕時,也會設定 Parent 引數。 選項群組是所包含的任何核取方塊、選項按鈕或切換按鈕的上層控制項。 唯一可以擁有上層控制項的控制項為標籤、核取方塊、選項按鈕或切換按鈕。 這些控制項也可以分別建立,不需要具有上層控制項。
根據您要建立的控制項類型,以及它是否會系結至資料表中的欄位,設定 ColumnName 引數。 可與欄位繫結的控制項包括文字方塊、清單方塊、下拉式方塊、選項群組及繫結物件框。 此外,切換按鈕、選項按鈕及核取方塊等控制項如果不是包含在選項群組內,也可以與欄位繫結。
如果您指定 ColumnName 引數的功能變數名稱,則會建立系結至該欄位的控制項。 接著控制項的所有屬性會自動設定為任何對應欄位屬性的設定。 例如,控制項的 ValidationRule 屬性值會與欄位的該屬性值相同。
注意事項
如果精靈要在新的或現有表單或報表上建立控制項,必須先在設計檢視中開啟表單或報表。
若要從表單或報表中移除控制項,請使用 DeleteControl 和 DeleteReportControl 方法。
範例
下列範例會先根據 Orders 資料表建立新的表單。 然後,它會使用 CreateControl 方法,在表單上建立文字方塊控制項和附加標籤控制項。
Sub NewControls()
Dim frm As Form
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
' Create new form with Orders table as its record source.
Set frm = CreateForm
frm.RecordSource = "Orders"
' Set positioning values for new controls.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
' Create unbound default-size text box in detail section.
Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _
intDataX, intDataY)
' Create child label control for text box.
Set ctlLabel = CreateControl(frm.Name, acLabel, , _
ctlText.Name, "NewLabel", intLabelX, intLabelY)
' Restore form.
DoCmd.Restore
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。