Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
我在两个不同的表的两个不同窗口中都有部门选择的一个组合框,在“SelectedIndexChanged”事件中都有如下代码,结果在其中一个表可以正常筛选,另一个表则不可完成筛选,报错,我再用利用高级筛选中的表达式筛选项看生成的表达式,结果发现表达式结尾会少一个单引号,如: [部门] = '仓管部
而这段代码在另一个表中又不会出这样的问题,请高手帮忙看一下这是怎么回事?
Dim a As String
Dim b As String
Dim c As String
Dim d As Integer
If CurrentTable.Filter = "" Then
a = ""
Else
a = CurrentTable.Filter
End If
d = a.LastIndexOf("#")
If d>0 Then
If a = "" Then
b = a
c = a
ElseIf a.Length = d+1 Then
b = a & " " & "And"
c = a
ElseIf a.length > d+1 Then
b = a.Remove(d+1) & " " & "And"
c =a.Remove(d+1)
End If
Else
b=""
c=""
End If
Dim bb As String = e.Sender.Value
If bb = "全部" Then
CurrentTable.Filter = "" & c & ""
Else
CurrentTable.Filter = "" & b & " [部门] = '" & bb & "'"
End If
下载信息 [文件大小: 下载次数: ] | |
![]() |
上传了项目文件!在“日常工作报告”表中会有问题,“工作发放记录”和“出勤记录”就没有问题,请狐狸老爹帮忙看看!
就是在表“日常工作报告”主窗口的“部门”选择时会报错!另外两表的“部门”选择正常,代码一样!这是为什么呢?
代码没有看出问题,做个例子上来吧。
真正的问题出在Combox2的SelectedIndexChanged事件,你加一行代码就知道怎么回事:
Dim a As String
Dim b As String
Dim c As String
Dim d As Integer
If CurrentTable.Filter = "" Then
a = ""
Else
a = CurrentTable.Filter
End If
d = a.LastIndexOf("部")
If d>0 Then
If a = "" Then
b = a
c = a
ElseIf a.Length = d+2 Then
b = a & " " & "And"
c = a
ElseIf a.length > d+2 Then
b = a.Remove(d+2) & " " & "And"
c =a.Remove(d+2)
End If
Else
b=""
c=""
End If
Dim bb As String = e.Sender.Value
messagebox.show(c & "|" & b & " [执行人] = '" & bb & "'")
If bb = "全部" Then
CurrentTable.Filter = "" & c & ""
Else
CurrentTable.Filter = "" & b & " [执行人] = '" & bb & "'"
End If
谢谢狐狸老爹的及时帮助!
其它的两个表可以用又是怎么回事呢?代码一样的啊?
但问题出在哪我现在还是没有弄明白!
你Combox1的SelectedIndexChanged事件代码中,下面红色为止多了一个空格。
CurrentTable.Filter = "" & b & " [部门] = '" & bm & " '"
可以导致你Combox2的SelectedIndexChanged运行中判断错误,去掉了一个单引号'
晕啊!
直接复制过来的怎么还会这样呢!昨天我也是找了半天的问题!
刚重新复制一下过来就又可以了!呵呵!看来是无意之过啊!
还是要多谢狐狸老爹积极解答!