【问题标题】:Access - Navigation Form Changes Record Source to Target Name and Unbinds ControlsAccess - 导航表单将记录源更改为目标名称并取消绑定控件
【发布时间】:2020-12-18 18:32:33
【问题描述】:

我有一系列使用 VBA 过滤的表单,它们都可以正常工作,直到将表单添加到导航表单,然后返回错误说“操作或方法无效,因为表单或报表未绑定到表或查询'

我认为......这是因为导航表单没有记录源......而是它有一个目标名称

在原始表单上,属性记录源是 tblAvailableHours2

在导航表单上,属性是目标名称 Frm_Available_Capacity_Hours

它是一个简单的日期过滤器,

Private Sub ApplyDtFilt_Click()

    On Error GoTo ApplyDtFilt_Click_Err
    
     DoCmd.ApplyFilter , "[Start Date] Between #" & Format([AVstrtdt], "yyyy\/mm\/dd") & "# And #" & Format([AVEnDt], "yyyy\/mm\/dd") & "#"
     
    ApplyDtFilt_Click_Exit:
        Exit Sub
    ApplyDtFilt_Click_Err:
        MsgBox Error$
        Resume ApplyDtFilt_Click_Exit
    
End Sub

有没有办法将上述过滤器链接回 VBA 中的原始表 tblAvailableHours2 或操作属性表中的导航表单记录源/目标名称以使其再次工作?

【问题讨论】:

    标签: vba ms-access unbound


    【解决方案1】:

    我没有使用导航表单,但如果您的表单是子表单,您必须通过持有它的子表单控件来解决这个问题:

    Private Sub ApplyDtFilt_Click()
    
        On Error GoTo ApplyDtFilt_Click_Err
    
        With Me!NameOfSubformControlHoldingFrm_Available_Capacity_Hours.Form
            .Filter = "[Start Date] Between #" & Format([AVstrtdt], "yyyy\/mm\/dd") & "# And #" & Format([AVEnDt], "yyyy\/mm\/dd") & "#"
            .FilterOn = True
        End With
         
        ApplyDtFilt_Click_Exit:
            Exit Sub
        ApplyDtFilt_Click_Err:
            MsgBox Error$
            Resume ApplyDtFilt_Click_Exit
        
    End Sub
    

    【讨论】:

    • 看来是古斯塔夫又来救我了……您的回答让我朝着正确的方向前进……非常感谢!由于找不到子表单 Frm_Available_Capacity_Hours 出现错误,但是研究这种方法的正确方法是使用导航表单来调用导航表单的名称。在这种情况下,它是 EPM-V2...With Forms![EPM-V2]![NavigationSubform].Form.....(我将在下面发布最终代码以防其他人在寻找)感谢您的帮助;-) 喝杯咖啡的时间!
    【解决方案2】:
    Private Sub ApplyDtFilt_Click()
    On Error GoTo ApplyDtFilt_Click_Err
         
         With Forms![EPM-V2]![NavigationSubform].Form
         Filter = "[Start Date] Between #" & Format([AVstrtdt], "yyyy\/mm\/dd") & "# And #" & Format([AVEnDt], "yyyy\/mm\/dd") & "#"
        .FilterOn = True
        End With
    
    ApplyDtFilt_Click_Exit:
        Exit Sub
    ApplyDtFilt_Click_Err:
        MsgBox Error$
        Resume ApplyDtFilt_Click_Exit
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2016-11-04
      • 2010-11-16
      • 1970-01-01
      相关资源
      最近更新 更多