You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access动态表单开发:使用CreateForm函数遇7870错误咨询

错误原因与解决方法

错误根源

你误用了CreateForm函数的参数:CreateForm([database][, formtemplate])的第一个参数是数据库路径/名称,第二个参数才是用来作为模板的表单名。你把已存在的表单名alpha传给第一个参数,Access会误认为要查找名为alpha的数据库,因此抛出错误7870。

CreateForm的作用是创建新表单,而非获取已存在的表单对象,这是你对函数的核心误解。

正确实现步骤

1. 获取已存在的alpha表单对象

根据表单当前状态选择对应方式:

  • 若表单已在设计视图打开:
    Dim frm As Form
    Set frm = Forms("alpha")
    
  • 若表单未打开,先以隐藏设计视图打开再获取:
    Dim frm As Form
    DoCmd.OpenForm "alpha", acDesign, , , acHidden ' 以隐藏设计视图打开
    Set frm = Forms("alpha")
    

2. 动态创建控件(以文本框为例)

获取表单对象后,调用CreateControl创建控件:

Dim ctl As Control
' 参数说明:表单名、控件类型、所在节、关联标签名、控件值、左、上、宽、高
Set ctl = CreateControl(frm.Name, acTextBox, acDetail, , , 100, 100, 200, 50)
' 设置控件属性
ctl.Name = "txtDynamicInput"
ctl.Caption = "动态生成的文本框"

3. 保存修改(可选)

若需要保留动态创建的控件,最后执行保存:

DoCmd.Save acForm, frm.Name

内容的提问来源于stack exchange,提问作者Kingsley Obeng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:22:32