Office中国论坛/Access中国论坛

标题: 用代码往窗体中添加控件,求助!!! [打印本页]

作者: yumendaxia    时间: 2014-11-4 10:17
标题: 用代码往窗体中添加控件,求助!!!
本帖最后由 yumendaxia 于 2014-11-4 10:35 编辑

Dim Mycmd As Control

Private Sub CommandButton1_Click()
     Set Mycmd = Controls.Add("Forms.CommandButton.1")
     Mycmd.Left = 18
     Mycmd.Top = 50
     Mycmd.Width = 175
     Mycmd.Height = 20
     Mycmd.Caption = "非常有趣。" & Mycmd.Name
End Sub
请问一下,这一段代码有什么问题吗?运行的时候总是提示“方法和数据成员未找到”。红色部分为调试后被标记的代码.
作者: tmtony    时间: 2014-11-4 11:09
试一下这个
CreateControl
作者: yumendaxia    时间: 2014-11-4 11:21
tmtony 发表于 2014-11-4 11:09
试一下这个
CreateControl

CreateControl要在窗体的设计视图中才能添加,所以前提是要打开窗体的设计视图。

作者: tmtony    时间: 2014-11-4 11:41
Acccess不在设计状态 或生成MDE后
是不允许动态添加控件的
要用openform  在design设计状态。才能添加
只有VB才能在运行时动态添加控件
access只能先创建足够多的控件放在窗体上,隐藏起来。再用代码控制是否显示
作者: yumendaxia    时间: 2014-11-4 13:00
tmtony 发表于 2014-11-4 11:41
Acccess不在设计状态 或生成MDE后
是不允许动态添加控件的
要用openform  在design设计状态。才能添加

哦,原来是这样啊。难怪在网上搜寻时,都是VB动态添加控件的代码,没有关于access的。感谢!
作者: tmtony    时间: 2014-11-4 13:03
是的。ACCESS要采用
先创建足够多的控件放在窗体上,隐藏起来。再用代码控制是否显示
这种方法
作者: yumendaxia    时间: 2014-11-4 13:14
tmtony 发表于 2014-11-4 13:03
是的。ACCESS要采用
先创建足够多的控件放在窗体上,隐藏起来。再用代码控制是否显示
这种方法

这真够麻烦的。要是用这种方法,如果在报表上显示一些图片控件,如果有一些隐藏了,那岂不是会留出大量空白地方。
作者: roych    时间: 2014-11-4 16:54
yumendaxia 发表于 2014-11-4 13:14
这真够麻烦的。要是用这种方法,如果在报表上显示一些图片控件,如果有一些隐藏了,那岂不是会留出大量空 ...

可以用一个空白图片代替啊。
作者: tmtony    时间: 2014-11-4 18:22
图片隐藏了。不会留下空白,隐藏的控件不会显示和打印出来




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3