导航子窗体requery停止工作

时间:2013-12-18 18:00:50

标签: sql forms ms-access

我构建了一个未绑定的表单,允许用户从包含相关信息的两个组合框中选择(区域和分区单元 - 每个区域包含多个分水岭单元),以查看适用于每个组合的规则。根据这些选择(存储在主窗体上的txtZonetxtWU),子窗体将显示现有规则(基于qryRegsbyZWU的sfrmRegsbyZWU)。这可以作为用户的参考,用户可以从另一个子表单中选择要添加的新规则,单击按钮,并将选择添加到所选区域/分区单元的规则中。我在子窗体的OnCurrent事件中成功构建了一个变通方法(这是不可取的,因为用户无法单击记录并将其删除)并且一切正常,直到我添加插入的代码来更改查询定义对于查询而言,该查询是子表单的基础,而不是在子表单的“On current”事件中。

此时,以前工作过的主窗体中的requery语法停止工作。这一切都嵌入在Access 2010中的导航表单中,因此以前使用的语法是:

Forms!frmNav!NavigationSubform.Form.sfrmRegsbyZWU.Requery

我已经尝试过每一个我能想到的Requery的排列,但我无法让它发挥作用。基础查询已更改,但表单不会更新以反映它。任何人都可以向我解释出了什么问题,以及如何解决它?代码(附加到组合框的_After Update()事件)是:

    Private Sub cboZone_AfterUpdate()
    'Changes WU combo box as well as the underlying text boxes

    Me.cboWU.SetFocus
    Me.cboWU = ""

    'Blank out other selections

    Me.txtWU.SetFocus
    Me.txtWU = ""

    'Update text box with combobox selection
    Me.txtZone.SetFocus
    Me.txtZone = Me!cboZone.Column(0)

   'Change the query underlying the Existing Regs panel (frmRegsbyZWU, qryRegsbyZWU) to reflect selection

    Dim strZSQL As String

    Set qdfZ = CurrentDb().QueryDefs("qryRegsbyZWU")

    Dim myZVar As Variant

        myZVar = Forms!frmNav!NavigationSubform.Form.txtZone

        'MsgBox (myZVar)

    If IsNull(myZVar) Then

         strZSQL = "SELECT * FROM tblRegulations WHERE FALSE"

    Else

        strZSQL = "SELECT * FROM tblRegulations WHERE Zone_No=" & Forms!frmNav!NavigationSubform.Form.txtZone


    End If

        'MsgBox (strZSQL)

    qdfZ.SQL = strZSQL

    'DoCmd.OpenQuery ("qryRegsbyZWU")

  Forms!frmNav!NavigationSubform.Form.sfrmRegsbyZWU.Requery

提前感谢您的帮助!

0 个答案:

没有答案