2:
    Dim frm As Form
    Set frm= QueryChildForm
    frm.cmdOk.Enabled = False
    frm.Show vbModal, Me

解决方案 »

  1.   

    QueryChildForm是函数,不能这样调用。
      

  2.   

    ltpao:
    这样我能解决,但是我想知道具体的原因。但是函数返回的不是那Form吗?
    有什么区别,??
      

  3.   

    Set frm= QueryChildForm() 这样才能返回FORM,QueryChildForm.cmdOk.Enabled = False
    QueryChildForm.Show vbModal, Me上面的QueryChildForm还没有生成,要在前面加:Set QueryChildForm = QueryChildForm() 
      

  4.   

    你的第一个QueryChildForm返回了一个form对象,你Disable 了这个Form上的CmdOK,但没有显示这个Form;第二个QueryChildForm又生成了一个新的Form,和第一次返回的没有任何联系。这么说明白了吗?
    所以用ltpao(啊炮)的代码就可以了。
      

  5.   

    是不是这样理解。QueryChildForm在Show的时候才生成新的Form.所以前面的Disable没有用?
      

  6.   

    当退出函数QueryChildForm时,局部变量frm会被清除,所以等于没有建立窗体一定要赋值之后使用:
    frm = QueryChildForm()
    frm.cmdOk.Enabled = False
    frm.Show vbModal, Me