Office中国论坛/Access中国论坛

标题: 一个窗体,可不可以同时打开多次? [打印本页]

作者: luhao    时间: 2010-6-22 23:39
标题: 一个窗体,可不可以同时打开多次?
一个窗体,可不可以同时打开多次?

主窗体中 有个字段"单据类型"  数据为"采购入库单" "半成品入库单","其它入库单"

理想;三个命令按钮;"采购入库单" "半成品入库单","其它入库单"    分别可以动态打开三次窗体调用各自的数据显示

目的:可以节省大量窗体,给ACC文件减肥.........

不知大家明白吗?请老师们指教
作者: t小宝    时间: 2010-6-23 21:45
可以的,可参看帮助文件:

创建窗体的多个非默认实例
如果要同时显示多个窗体实例,可以创建多个窗体类的非默认实例。例如,要同时显示雇员和雇员主管的记录,可以创建两个“Employees”窗体类的实例,一个用来显示雇员记录,另一个显示主管记录。

若要从 Visual Basic 中创建窗体类的非默认实例,必须先声明一个以窗体的类模块名称为类型的变量。必须在变量声明中包含 New 关键字。例如,下面的代码将新建一个“Employees”窗体的实例,然后将它分配给一个 Form 类型的变量:

Dim frm As New Form_Employees
               
该窗体的非默认实例是不可见的,除非明确地设置其 Visible 属性。

当创建该实例的程序执行结束,该实例就会从内存中删除,除非已将表示它的变量声明为模块级变量。因为模块级变量将保留自己的值,直到使用“运行”菜单上的“重新设置”命令或工具栏上的“重新设置”按钮来重新设置它们为止,所以,如果变量已声明为模块级变量,窗体就会一直保持打开状态。

您所设置的任何属性都将影响窗体类的该实例,但不会与窗体一起保存。此外,如果在“设计”视图中打开窗体,就无法新建窗体类的实例。

窗体类的非默认实例不能通过 Forms 集合中的名称来引用,而只能通过索引编号引用,因为可以创建窗体的多个非默认实例,并且每个实例都具相同的名称,因而在 Forms 集合中可以有多个同名的窗体,只有用索引编号才能区分它们。
作者: luhao    时间: 2010-6-24 00:34
2# t小宝

可以赐教实例 吗?
作者: t小宝    时间: 2010-6-24 12:30
3# luhao

假设在窗体A上有2个按钮,分别要打开窗体B的2个新实例,并设第1个打开的窗体B的标题为“1”,第二个为“2”,代码:

  1. Option Compare Database
  2. Option Explicit
  3. Dim frm1 As Form_窗体B
  4. Dim frm2 As Form_窗体B
  5. Private Sub Command0_Click()
  6.     Set frm1 = New Form_窗体B
  7.     frm1.Caption = "1"
  8.     frm1.Visible = True
  9. End Sub
  10. Private Sub Command2_Click()
  11.     Set frm2 = New Form_窗体B
  12.     frm2.Caption = "2"
  13.     frm2.Visible = True
  14. End Sub

复制代码

作者: luhao    时间: 2010-6-25 23:35
4# t小宝 [/b多谢指教]
作者: luhao    时间: 2010-6-25 23:36
4# t小宝 [/b多谢指教]
作者: asklove    时间: 2010-6-26 13:26
学习




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