CreateControl 方法在指定的已打開窗體上創(chuàng)建一個控件。例如,假設(shè)您正在建立一個便于用戶構(gòu)建特殊窗體的自定義向?qū)А?梢栽谙驅(qū)е惺褂?CreateControl 方法將適當?shù)目丶砑拥酱绑w上。
CreateControl(formname, controltype[, section[, parent[, columnname[, left[, top[, width[, height]]]]]]])
CreateControl 方法包含下列參數(shù):
參數(shù) |
說明 |
|
formname |
字符串表達式,用于標識要在其中創(chuàng)建控件的已打開窗體或報表的名稱。 |
|
controltype |
下列固有常量之一,用于標識要創(chuàng)建的控件的類型。若要在“對象瀏覽器”中查看這些常量并將其粘貼到代碼內(nèi),請在 Visual Basic 的工具欄上單擊“對象瀏覽器”,然后單擊“工程/庫”框中的 Access,最后單擊“類”框中的 AcControlType。 |
|
常量 |
控件 |
|
acBoundObjectFrame |
||
acCheckBox |
||
acComboBox |
||
acCommandButton |
||
acCustomControl |
||
acImage |
||
acLabel |
||
acListBox |
||
acObjectFrame |
||
acOptionButton |
||
acOptionGroup |
||
acSubform |
||
acTabCtl |
||
acTextBox |
||
acToggleButton |
||
section |
下列固有常量之一,用于標識將包含新控件的節(jié)。若要在“對象瀏覽器”中查看這些常量并將其粘貼到代碼中,請在 Visual Basic 的工具欄上單擊“對象瀏覽器”,然后單擊“工程/庫”框中的 Access,最后單擊“類”框中的 AcSection。 |
|
常量 |
節(jié) |
|
acDetail |
(默認)主體節(jié) |
|
acHeader |
窗體或報表頁眉 |
|
acFooter |
窗體或報表頁腳 |
|
acPageHeader |
頁面頁眉 |
|
acPageFooter |
頁面頁腳 |
|
acGroupLevel1Header |
分組級別 1 頁眉(僅用于報表) |
|
acGroupLevel1Footer |
分組級別 1 頁腳(僅用于報表) |
|
acGroupLevel2Header |
分組級別 2 頁眉(僅用于報表) |
|
acGroupLevel2Footer |
分組級別 2 頁腳(僅用于報表) |
|
如果報表有另外的分組級別,頁首/頁腳將成對從 9 開始連續(xù)編號。 |
||
parent |
字符串表達式,用于標識附加控件的父控件名稱。對于沒有父控件的控件,該參數(shù)可以是零長度字符串,也可以忽略。 |
|
columnname |
如果創(chuàng)建的是一個數(shù)據(jù)綁定型控件,則該參數(shù)為控件將綁定到的字段的名稱。 |
|
如果創(chuàng)建的是一個不綁定到字段的控件,則應(yīng)將該參數(shù)設(shè)為零長度字符串。 |
||
left, top |
數(shù)值表達式,表示控件左上角的坐標值,以緹為單位。 |
|
width, height |
數(shù)值表達式,表示控件的寬度和高度,以緹為單位。 |
可以使用自定義向?qū)е械?CreateControl 和 CreateReportControl 方法來創(chuàng)建窗體或報表上的控件。兩個方法都將返回一個 Control 對象。
只可以分別在窗體“設(shè)計”視圖或報表“設(shè)計”視圖中使用 CreateControl 和 CreateReportControl 方法。
可以使用 parent 參數(shù)確定主控件和次控件之間的關(guān)系。例如,如果文本框有一個附屬標簽,則文本框是主(父)控件,標簽是次(子)控件。創(chuàng)建標簽控件時,請將其 parent 參數(shù)設(shè)為標識父控件名稱的字符串。創(chuàng)建文本框時,請將其 parent 參數(shù)設(shè)置為零長度字符串。
在創(chuàng)建復選框、選項按鈕或切換按鈕時,也可以設(shè)置 parent 參數(shù)。選項組是其所含復選框、選項按鈕或切換按鈕的父控件。只有標簽、復選框、選項按鈕或切換按鈕等控件才有父控件。當然這些控件也可以不使用父控件而獨立創(chuàng)建。
根據(jù)正在創(chuàng)建的控件類型,以及它是否綁定到表中字段這兩個條件,可以設(shè)置 columnname 參數(shù)。綁定到字段的控件可以是文本框、列表框、組合框、選項組和綁定對象框。另外,如果切換按鈕、選項按鈕和復選框控件沒有包含在選項組中,則也可以與字段綁定。
如果指定 columnname 參數(shù)的字段名稱,則可以創(chuàng)建一個綁定到該字段的控件。然后所有控件的屬性都將自動設(shè)置為與之對應(yīng)的字段屬性值。例如,控件的 ValidationRule 屬性值將與該字段的屬性值相同。
注釋 如果向?qū)г谛碌幕颥F(xiàn)有的窗體或報表中創(chuàng)建控件,它必須先在“設(shè)計”視圖中打開窗體或報表。
若要從窗體或報表中刪除控件,請使用 DeleteControl 和 DeleteReportControl 語句。
下面的示例首先基于“訂單”表創(chuàng)建一個新窗體,然后使用 CreateControl 方法在窗體上創(chuàng)建文本框控件和附屬標簽控件。
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