如何通过VBA在Access报表上创建控件?

时间:2016-04-07 19:54:35

标签: ms-access access-vba report ms-access-2010

到目前为止,我手动在报表上创建了一个有限数量(12)的控件,我的代码基本上根据用户选择的数量打开或关闭(成功)。 现在我的客户希望用户对报告中的控件数量“无限制”。

我的策略是删除控件并动态创建所需的数字(通过代码)。 但是,当我尝试创建一个控件时,我得到运行时错误2450“无法找到引用的表单”。 片段:

    DoCmd.OpenReport "My_report", acViewDesign
    Dim ctl As Control
    Set ctl = CreateControl(FormName:="My_report", ControlType:=acTextBox, _
            Section:=acDetail, left:=2880, top:=0, width:=967, height:=312)
    ' ... here lies code that adjusts attributes of the controls
    DoCmd.OpenReport "My_report", acViewReport

执行暂停CreateControl行:...找不到引用的表单'My_report'。 (工作时,实际的CreateControl代码将在循环中,几何参数将替换为变量。)

我见过的所有讨论都与表单相关,但CreateControl Method处的文档说第一个参数是“要在其上创建控件的打开表单或报表的名称“所以它也适用于报告。 请注意,报告 在设计模式下打开。知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,在线帮助/文档有时是错误的,或者至少是误导性的。

对此有一个单独的方法CreateReportControl()