0

我有一系列使用 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 或操作属性表中的导航表单记录源/目标名称以使其再次工作?

4

2 回答 2

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
于 2020-12-18T18:58:04.847 回答
0
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
于 2020-12-21T11:47:18.493 回答