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