Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

在当前form上添加控件为什么不可以?

jack  发表于:2012-07-25 18:03:38  
复制

各位专家,有经历过这个问题吗?

 

Form1上有个按钮Command0, 点击它,希望在Form1上添加一个控件,如lable, 提示不能添加控件,

但如果换成是在另外一个form上添加控件,程序没会执行。这是为什么呢?

为什么不能在当前窗口上添加控件呢?代码如下

Private Sub Command0_Click()
    Dim ctlLabel As Control
    DoCmd.OpenForm "Form1", acDesign
    Set ctlLabel = CreateControl("Form1", acLabel, , "", "NewLabel", 100, 100)
    DoCmd.Restore
   
End Sub

另外看到很多资料添加控件用contols.add方法,但我这里controls没有add方法,这个是为什么?本人用access2010.

希望高手指点,谢谢!

 

Top
竹笛 发表于:2012-07-25 21:22:50

经过我在access2010简体中文版上测试,你上面的代码是成功的。

会不会是你安装了多个office版本在同一台电脑上?



jack 发表于:2012-07-25 23:26:01
不会吧! 我电脑上没装其它版本的office, 请注意按钮command是在form1上的,同样的方法,如果是在另外一个form上添加控件是成功的,代码如附件,麻烦在你电脑上试一下。点击下载此附件

竹笛 发表于:2012-07-26 08:39:35
jack 发表于:2012-07-26 11:49:18

读了你的回帖,非常感谢,不过因为我是新手,不是很理解,麻烦有时间的话解释一下,尤其是Form_Timer()和TimeInterval

建一个窗体Form2,里面写代码:

Private Sub Form_Timer()
Dim ctlLabel As Control
DoCmd.OpenForm "Form1", acDesign
Set ctlLabel = CreateControl("Form1", acLabel, , "", "NewLabel", 100, 100)
DoCmd.Restore
DoCmd.Close acForm, "Form2"
End Sub

再在窗体Form1的命令按钮Command0单击事件写代码:

Private Sub Command0_Click()
DoCmd.OpenForm "Form2"
DoCmd.Close acForm, "Form1"
Forms(Form1).TimerInterval = 1000
End Sub



竹笛 发表于:2012-07-26 17:02:28

这个是计时器事件,指定窗体Form2在1秒钟后开始执行代码,相当于通过另一窗体来实现创建。

Forms(Form2).TimerInterval = 1000 '前面发文时我写错了,是Form2



jack 发表于:2012-07-27 09:22:25
我发现Forms(Form2).TimerInterval = 1000这句话里面无论写Form1还是Form2运行效果都一样。

总记录:6篇  页次:1/1 9 1 :