Access使用VBA代码自动创建控件的方法及示例

您所在的位置:网站首页 vba新建窗体 Access使用VBA代码自动创建控件的方法及示例

Access使用VBA代码自动创建控件的方法及示例

2023-08-12 01:54| 来源: 网络整理| 查看: 265

访问开发人员参考 的CreateControl方法创建一个指定的打开窗体上的一个控制。例如,假设您正在构建一个允许用户轻松构建特定表单的自定义向导。您可以使用向导中的CreateControl方法向窗体添加相应的控件。

句法

表达式 .CreateControl(FormName,ControlType,Section,Parent,ColumnName,Left,Top,Width,Height)

表达式    表示Application对象的变量。

参数

名称 必需/可选 数据类型 描述 窗体名称 需要 串 要在其上创建控件的打开的表单或报表的名称。 ControlType 需要 AcControlType 一个AcControlType 常量表示要创建的控件的类型。 部分 可选的 AcSection 一个AcSection常数,用于标识将包含新控件的部分。 亲 可选的 变种 附件控件的父级控件的名称。对于没有父控件的控件,对此参数使用零长度字符串,或者省略它。 的ColumnName 可选的 变种 控制将绑定的字段的名称,如果它是一个数据绑定的控件。 左,上 可选的 变种 控制左上角的坐标为缇。 宽度,高度 可选的 变种 指示控件的宽度和高度的数字表达式,以缇为单位。

回报价值 控制

备注

您可以使用自定义向导中的Create Control和CreateReportControl方法在窗体或报表上创建控件。两个方法都返回一个Control 对象。

您可以分别使用CreateControl和CreateReportControl方法在表单设计视图或报表设计视图中。

您可以使用父参数来标识主控件和从属控件之间的关系。例如,如果文本框具有附加的标签,则文本框是主(或父)控件,标签是从属(或子)控件。创建标签控件时,将其父参数设置为标识父控件名称的字符串。创建文本框时,将其父参数设置为零长度字符串。

您还可以在创建复选框,选项按钮或切换按钮时设置父参数。选项组是其包含的任何复选框,选项按钮或切换按钮的父控件。可以有父控件的唯一控件是标签,复选框,选项按钮或切换按钮。所有这些控件也可以独立创建,无需父控件。

根据您正在创建的控件的类型设置columnname参数,以及是否绑定到表中的字段。可能绑定到字段的控件包括文本框,列表框,组合框,选项组和绑定对象框架。此外,切换按钮,选项按钮和复选框控件可能会绑定到一个字段,如果它们不包含在选项组中。

如果指定columnname参数的字段名称,则创建绑定到该字段的控件。然后,所有控件的属性将自动设置为任何相应的字段属性的设置。例如,控件的ValidationRule 属性的值将与该字段的该属性的值相同。

Bb237827.vs_note(EN-US,office.12).gif注意:  注意 如果您的向导在新的或现有的表单或报表上创建控件,则必须首先在“设计”视图中打开表单或报表。

要从表单或报表中删除控件,请使用DeleteControl和DeleteReportControl 语句。

以下示例首先基于Orders表创建一个新表单。然后它使用CreateControl方法在表单上创建一个文本框控件和附加的标签控件。

Visual Basic应用程序 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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3