Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:求助 一段关于筛选的代码

1楼
zhan_n 发表于:2011/9/9 15:56:00

我在两个不同的表的两个不同窗口中都有部门选择的一个组合框,在“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

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:项目1.zip

 

 

 

上传了项目文件!在“日常工作报告”表中会有问题,“工作发放记录”和“出勤记录”就没有问题,请狐狸老爹帮忙看看!

 

就是在表“日常工作报告”主窗口的“部门”选择时会报错!另外两表的“部门”选择正常,代码一样!这是为什么呢?


 

[此贴子已经被作者于2011-9-9 16:51:19编辑过]
2楼
狐狸爸爸 发表于:2011/9/9 16:01:00

代码没有看出问题,做个例子上来吧。

3楼
zhan_n 发表于:2011/9/9 16:40:00
狐狸老爹,现在怎么不能把表单独另存出来啊?也不能导入其它项目中的表这样很不方便啊!
4楼
狐狸爸爸 发表于:2011/9/9 17:07:00
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 bm As String = e.Sender.Value
If bm = "全部" Then
    CurrentTable.Filter = "" & c & ""
Else
   CurrentTable.Filter = "" & b & " [部门] = '" & bm & "'"
End If
Dim cb As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim dr As DataRow
dr = DataTables("员工信息").find("部门 = '" & bm & "'")
If dr IsNot Nothing Then
    cb.ComboList = "全部|" & DataTables("员工信息").GetComboListString("姓名","[部门] = '" & bm & "'") & ""
Else
    cb.ComboList = "全部|" & DataTables("员工信息").GetComboListString("姓名","[职务] <> '总经理'") & ""
End If
5楼
狐狸爸爸 发表于:2011/9/9 17:55:00

真正的问题出在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

6楼
zhan_n 发表于:2011/9/10 8:54:00

谢谢狐狸老爹的及时帮助!

其它的两个表可以用又是怎么回事呢?代码一样的啊?

但问题出在哪我现在还是没有弄明白!

7楼
狐狸爸爸 发表于:2011/9/10 9:22:00

你Combox1的SelectedIndexChanged事件代码中,下面红色为止多了一个空格。

CurrentTable.Filter = "" & b & " [部门] = '" & bm & " '"

 

可以导致你Combox2的SelectedIndexChanged运行中判断错误,去掉了一个单引号'

8楼
zhan_n 发表于:2011/9/10 9:31:00

晕啊!

直接复制过来的怎么还会这样呢!昨天我也是找了半天的问题!

刚重新复制一下过来就又可以了!呵呵!看来是无意之过啊!

还是要多谢狐狸老爹积极解答!

 

共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 3 queries.