Office中国论坛/Access中国论坛

标题: 一段生成新的窗体代码请教 [打印本页]

作者: olderdream2007@    时间: 2014-7-4 18:09
标题: 一段生成新的窗体代码请教
下面的代码来自于一本老外写的数据,作用是可以生成一个新的窗体.

不过,在我的电脑中使用这段代码用不了, 帮助中查询Form_Projects似乎也没有讯息.

请高人看看 错在那里?(是否需要引用什么东西---) . 非常感谢!


Sub createObject1()
Dim frm as Form_Projects
Set frm=New Form_Projects
frm.Visible=True
End Sub

作者: zpy2    时间: 2014-7-5 05:54
Form_Project 是模板,如果,仅是createform就是默认模板建窗体。

比如有一个窗体叫AddData,可以在运行时用Form_AddData代替Form_project可动态生成一个与之相同的窗体。
作者: zpy2    时间: 2014-7-5 05:57
刚才没看仔细,是把Form_projects作为一个类来用,该窗体一定要含有代码才行,也是动态产生窗体。
作者: zpy2    时间: 2014-7-5 08:07
把Dim 这句放到sub外,成为模块级变量,窗体不会直接关了。
作者: 盗梦    时间: 2014-7-5 08:30
用Application.CreateForm 即可创建窗体
作者: olderdream2007@    时间: 2014-7-5 11:26
本帖最后由 olderdream2007@ 于 2014-7-5 11:29 编辑

zpy2,谢谢 按照你说的放到SUB外也不行.

出现提示内容为 用户定义类型错误  难到ACCESS中没有Form_Projects这个类型么? 谢谢


Sub createObject1()
Dim frm as Form_Projects
Set frm=New Form_Projects
frm.Visible=True
End Sub

作者: olderdream2007@    时间: 2014-7-5 11:27
盗梦 发表于 2014-7-5 08:30
用Application.CreateForm 即可创建窗体

谢谢高人指点 如果想创建一个名字为NEW的窗体, 如何用CREATEFROM实现呢?
(好像没有命名的地方)
作者: 盗梦    时间: 2014-7-5 12:39
olderdream2007@ 发表于 2014-7-5 11:27
谢谢高人指点 如果想创建一个名字为NEW的窗体, 如何用CREATEFROM实现呢?
(好像没有命名的地方)

    Dim frm As Form
    Dim strName As String
   
    Set frm = Application.CreateForm '获取创建的窗体
    strName = frm.Name               '保存窗体名
   
    DoCmd.Close acForm, frm.Name, acSaveYes '关闭并保存窗体
    DoCmd.Rename "New", acForm, strName     '窗体重命名
作者: olderdream2007@    时间: 2014-7-5 13:27
盗梦 发表于 2014-7-5 12:39
Dim frm As Form
    Dim strName As String
   

谢谢高人指点,要的就是这个. 谢谢
作者: zpy2    时间: 2014-7-5 13:31
我前面发的贴没出来???
FORM_projects是一个带代码的窗体,作为一个类来用。
相当于vB中隐含的FORM1,用NEW关键词创建一个新的实例。所以,首先要有projects这样一个窗体才行。
作者: olderdream2007@    时间: 2014-7-5 15:19
zpy2 发表于 2014-7-5 13:31
我前面发的贴没出来???
FORM_projects是一个带代码的窗体,作为一个类来用。
相当于vB中隐含的FORM1, ...

谢谢了,刚才自己看了下 的确如此.  非常感谢!






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