安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假

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

2017-08-28 16:58:00
zstmtony
原创
1387

能否通过程序代码来自动创建Access窗体上的控件呢,理论上是可行的。Access?#26087;?#23601;提供了CreateControl这个方法

可以让您通过VBA代码来自动创建控件,并指定控件的类型及相关属性



Application.CreateControl方法

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

句法

表达式 .CreateControl(FormNameControlTypeSectionParentColumnNameLeftTopWidthHeight

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

参数

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

回报价值
控制

备注

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

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

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

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

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

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

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

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

以下示例首?#28982;?#20110;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
分享
? 1999-2019 Office交流网?? 中山市天鸣科技发展有限公司 粤ICP备10043721号-5 SQL查询:18
内存占用:7.75MB
PHP 执行时间:0.18
双色球大奖2000年
安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假
万人水果老虎机安卓版 龙之王国投注 热血羽毛球mg试玩 天机时时彩计划白金版 假面战队五骑士全集01 埃瓦尔vs巴利亚多 图卢兹高等商学院面试 大航海时代4东南亚港口 广东快乐十分计划app 桑普多利亚数据