次の方法で共有


CreateControl メソッド

Microsoft Access Visual Basic のリファレンス

CreateControl メソッド

開いているフォームにコントロールを作成します。たとえば、特定のフォームが簡単に作成できるカスタム ウィザードの中で、CreateControl メソッドを使ってフォームに適切なコントロールを追加できます。

CreateControl(formname, controltype[, section[, parent[, columnname[, left[, top[, width[, height]]]]]]])

CreateControl メソッドには、次の引数があります。

引数 内容
formname コントロールを作成するフォームやレポートの名前を表す文字列式。
controltype 次の組み込み定数から 1 つを選び、作成するコントロールの種類を指定します。オブジェクト ブラウザでこれらの定数を表示してコードに貼り付けるには、Visual Basic ツールバーの [オブジェクト ブラウザ] をクリックします。次に、[プロジェクト/ライブラリ] ボックスの [Access] をクリックし、[クラス] ボックスの [AcControlType] をクリックします。
定数
acBoundObjectFrame
acCheckBox
acComboBox
acCommandButton
acCustomControl
acImage
acLabel
acLine
acListBox
acObjectFrame
acOptionButton
acOptionGroup
acPage
acPageBreak
acRectangle
acSubform
acTabCtl
acTextBox
acToggleButton
section 次の組み込み定数から 1 つを選び、新しいコントロールを配置するセクションを指定します。オブジェクト ブラウザでこれらの定数を表示してコードに貼り付けるには、Visual Basic ツールバー の [オブジェクト ブラウザ] をクリックします。次に、[プロジェクト/ライブラリ] ボックスの [Access] をクリックし、[クラス] ボックスの [AcSection] をクリックします。
定数
acDetail
acHeader
acFooter
acPageHeader
acPageFooter
acGroupLevel1Header
acGroupLevel1Footer
acGroupLevel2Header
acGroupLevel2Footer
レポートにグループ レベルが追加された場合は、ヘッダー/フッターの組に 9 から始まる連続番号が付けられます。
parent 付属するコントロールの親コントロールの名前を表す文字列式。親コントロールがない場合は、この引数に長さ 0 の文字列を指定するか、引数を省略します。
columnname データ連結コントロールを作成する場合は、コントロールを連結するフィールド名を指定します。
非連結コントロールを作成する場合は、長さ 0 の文字列を指定します。
left, top コントロールの左上隅の座標を表す数式を、twip 単位で指定します。
width, height コントロールの幅と高さを表す数式を、twip 単位で指定します。

解説

CreateControl メソッドおよび CreateReportControl メソッドを使って、カスタム ウィザードでフォームまたはレポートにコントロールを作成できます。いずれのメソッドも、Control オブジェクトを返します。

CreateControl メソッドはフォームのデザイン ビューで、CreateReportControl メソッドはレポートのデザイン ビューで使います。

引数 parent を使って、コントロールに親子関係を指定できます。たとえば、テキスト ボックスにラベルを追加する場合に、テキスト ボックスが主 (親) コントロールで、ラベルが従属 (子) コントロールになります。ラベル コントロールを作成する場合は、引数 parent に親にあたるコントロールの名前を指定します。テキスト ボックスを作成する場合は、引数 parent に長さ 0 の文字列を指定します。

チェック ボックス、オプション ボタン、またはトグル ボタンを作成する場合にも、引数 parent を設定できます。オプション グループは、中に含まれるチェック ボックス、オプション ボタン、またはトグル ボタンの親コントロールになります。親コントロールを持つことができるのは、ラベル、チェック ボックス、オプション ボタン、およびトグル ボタンのみです。これらのコントロールは、親コントロールがない場合でも作成できます。

引数 columnname は、作成するコントロールの種類、およびテーブルのフィールドとの連結コントロールに応じて設定します。フィールドに連結できるコントロールには、テキスト ボックス、リスト ボックス、コンボ ボックス、オプション グループ、および連結オブジェクト フレームがあります。また、トグル ボタン、オプション ボタン、およびチェック ボックスは、オプション グループに含まれていない場合にフィールドと連結できます。

引数 columnname にフィールド名を指定すると、フィールドに連結されたコントロールが作成されます。コントロールのすべてのプロパティは、自動的に対応するフィールドのプロパティと同じ内容に設定されます。たとえば、作成されたコントロールと対応するフィールドの "ValidationRule/入力規則" プロパティは、同じ値を持ちます。

メモ ウィザードを使ってフォームまたはレポートに新しいコントロールを作成する場合に、フォームまたはレポートはデザイン ビューで開いておく必要があります。

フォームおよびレポートからコントロールを削除するには、DeleteControl または DeleteReportControl ステートメントを使います。

使用例

次の使用例は、[受注] テーブルを基に新しいフォームを作成し、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

    ' [受注] テーブルをレコード ソースとする新規フォームを作成します。
    Set frm = CreateForm
    frm.RecordSource = "受注"
    ' 新しいコントロールの位置を設定します。
    intLabelX = 100
    intLabelY = 100
    intDataX = 1000
    intDataY = 100
    ' 既定サイズの非連結テキスト ボックスを、詳細セクションに作成します。
    Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _
        intDataX, intDataY)
    ' テキスト ボックスの子コントロールとして、ラベルを作成します。
    Set ctlLabel = CreateControl(frm.Name, acLabel, , _
         ctlText.Name, "新規ラベル", intLabelX, intLabelY)
    ' フォームを元のサイズに戻します。
    DoCmd.Restore
End Sub