843151504 发表于:2009-07-20 16:47:36
Private Sub 打开_Click()
DoCmd.OpenForm "" & Me.Name1 & ""
如果窗体含有子窗,获取子窗名
(有时不只是一个子窗)
再将子窗体数据属性设为不可用
End Sub
Sub FrmHasChildForm()
Dim ctrl As Control
Dim frm As Object
Dim flag As Boolean
For Each frm In CurrentProject.AllForms
flag = False
DoCmd.OpenForm frm.Name, acNormal, , , , acHidden
For Each ctrl In Forms(frm.Name).Controls
If ctrl.ControlType = 112 Then
flag = True
Debug.Print frm.Name, ctrl.Name
Exit For
End If
Next
MsgBox IIf(flag = True, frm.Name & "包含子窗体", frm.Name & "不包含子窗体")
DoCmd.Close acForm, frm.Name
Next
End Sub
谢谢你的回答,你用心了,但你是判断全部窗体,实用意义不大
我只想判断按钮中将要打开的窗体如: DoCmd.OpenForm "" & Me.Name1 & ""
由于窗体名是不定的,是以控件Me.Name1 的值为名的
判断完了,我要提取子窗体的名,以便设置子窗体数据属性设为不可用
再
1楼已经给出你判断的基本思路和原理了,你自己可以参考并修改之为你所用啊,如果你觉得自己修改有困难的话,可以先到网上搜索并查阅相关资料啊,动动脑筋去研究一下也便于加深理解,呵呵,自学的话不要寄望于别人给你一定弄成个现成的,对不对?