我仿造帮助文档的内容,做了一个筛选目录树,代码如下:
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
For Each nd As WinForm.TreeNode In e.node.Nodes '同步子节点选中状态
nd.Checked = e.Node.Checked
Next
If e.node.ParentNode IsNot Nothing Then '去掉父节点选中状态
e.node.ParentNode.Checked = False
End If
For Each nd As WinForm.TreeNode In trv.AllNodes
If nd.Level > 0 AndAlso nd.ParentNode.Checked Then '如果父节点选中
Continue For '跳过此节点,处理下一结点
End If
If nd.Checked Then
If flt > "" Then
flt = flt & " Or " '注意用or而不是And
End If
If nd.Level = 0 Then '注意下面的条件都要用括号括起来
flt = flt & "( 入职年份 = '" & nd.Text & "')"
Else
flt = flt & "( 入职年份 = '" & nd.ParentNode.Text & "' And 部门 = '" & nd.Text & "' And 办公室 = '" & nd.Text & "')"
End If
End If
Next
Tables("职工表").Filter = flt
结果,筛选入职年份和部门都能成功,但选择办公室时却出现“无法在 System.Double 和 System.String 上执行“=”操作。”的字样
因为示例只有2个筛选条件,我则想增加更多的筛选的目录,是不是 这一段And 办公室 = '" & nd.Text & "'有问题呢?我该怎么表述呢?
求教……非常感谢!