如果你看懂了3楼的代码, 或者你懂一点表达式的基础常识,就知道你一楼的代码有多么的荒缪。
其实这种问题,你直接显示一下合成的表达式,就知道原因了:
Dim strs() As String = e.Node.FullName.Split("\")
Dim flt As String = "1=1"
For i As Integer = 0 To strs.Length - 1 ''间接获取目录树层级(Level)
flt += strs(i)
Next
If flt > "" Then
Messagebox.Show(flt)
Tables("项目选型表").Filter = flt
End If
既然是合成表达式,而且应用合成的表达式出错,那么显示一下合成的表达式,看看是否符合预期,这不是自然而然的事情吗?