Foxtable(狐表)用户栏目专家坐堂 → 老师,看一个这段代码错在哪里,如何修改下?


  共有2203人关注过本帖树形打印复制链接

主题:老师,看一个这段代码错在哪里,如何修改下?

帅哥哟,离线,有人找我吗?
hbfnmxb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:6035 威望:0 精华:0 注册:2008/9/7 20:15:00
老师,看一个这段代码错在哪里,如何修改下?  发帖心情 Post By:2021/5/7 9:06:00 [只看该作者]

在执行窗口单独测试时,没问题,几段代码合并后,就出问题了。老师,您看哪里的错误。红色部分提示的错误!

e.Form.Controls("Label6").Text = "正在进行专业筛选,请稍后..."
Application.DoEvents()
Dim timestart,timeend As Date
timestart=Date.now
Dim Filter As String
With e.Form.Controls("ComboBox1")
    If .Value IsNot Nothing Then
        Filter = "首选科目 = '" & .Value & "'"
    End If
End With

Dim s As String=e.Form.Controls("ComboBox2")
 '考生选科数组
s=s.replace("物理","").replace("历史","").replace(",,",",").trim(",")  '只剩下再选科目
Output.Show(s)
Dim Xks() As String  '考生选科集合
Xks = s.split(",")
Dim Jhxks As List(Of String) '招生计划中的选科
Jhxks = DataTables("专业录取线").GetValues("再选科目")
Dim Xkmys As New List(Of String)  '与我的选科匹配的选科集合
Xkmys.Add("不限")
Xkmys.Add(Xks(0) & "和" & Xks(1))
''单科加"或"
For Index As Integer = 0 To Xks.Length - 1 ’提示错误的位置在这里!
    For Each Product As String In Jhxks
        If (Product.contains(Xks(Index) & "或") Or Product.contains("或" & Xks(Index)) Or   Product=Xks(Index)) And Xkmys.Contains(Product)=False Then
            'filter=filter & "'" & Product & "'"
            'Jhxks.Remove(Product)
            Xkmys.Add(Product)
        End If
    Next
Next
'加组合,手动填加,
'开始生成筛选条件
Dim tj As String
For Each filter As String In Xkmys
    tj = tj & "'" & filter & "',"
Next
tj="[再选科目] In (" & tj.trim(",") & ")"
Tables("专业录取线").Filter=tj
output.Show(tj)



With e.Form.Controls("ComboBox3")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "录取年度 = '" & .Value & "'"
    End If
End With
With e.Form.Controls("ComboBox4")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "文理分科 = '" & .Value & "'"
    End If
End With

Dim txt As String = e.Form.Controls("TextBox1").Text
If txt > "" Then
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    txt = "'%" & txt & "%'"
       Filter = Filter & "(专业名称 Like " & txt & " Or 院校名称 Like " & txt & " Or 所在省份 Like " & txt & " Or A211院校 Like " & txt & ")"
End If

If e.Form.Controls("GF").text > ""
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "低分同位 <= " &   e.Form.Controls("GF").text
End If

If e.Form.Controls("DF").text > ""
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "低分同位 >= " &  e.Form.Controls("dF").text
End If
If Filter > "" Then
    Tables("专业录取线").Filter = Filter
End If
Tables("专业录取线").Sort = "低分同位 DESC"  '按"低分同位"列降序排列

e.Form.Controls("Label6").Text = "专业筛选完毕!."
timeend=Date.now
e.Form.Controls("Label6").text="耗时" & (timeend-timestart).TotalSeconds & "秒"
Messagebox.Show("专业筛选完毕,请继续!")
MainTable = Tables("专业录取线")

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 9:19:00 [只看该作者]

提示什么错误?

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:6035 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/5/7 9:22:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:77.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 9:32:00 [只看该作者]

提示的意思是filter 这个变量名称重复了,前面已经定义了一个同名的变量,换个名称

'加组合,手动填加,
'开始生成筛选条件
Dim tj As String
For Each filter2 As String In Xkmys
    tj = tj & "'" & filter2 & "',"
Next

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:6035 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/5/7 9:45:00 [只看该作者]

老师,又出现了这样一个错误提示:您看一下

图片点击可在新窗口打开查看此主题相关图片如下:012.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 9:46:00 [只看该作者]

Dim s As String=e.Form.Controls("ComboBox2").text

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:6035 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/5/7 16:55:00 [只看该作者]

感谢老师,按照老师的进行了修改,已经不再报错了.现在我在实际测试的过程中发现代码执行还有问题:如下图:

图片点击可在新窗口打开查看此主题相关图片如下:77.png
图片点击可在新窗口打开查看
当我选择“物理,地理,思想政治”进行筛选时,选出的结果是图中的样子,完全不上;

图片点击可在新窗口打开查看此主题相关图片如下:78.png
图片点击可在新窗口打开查看
当我选择“历史,地理,思想政治”进行筛选时,选出的结果基本能对上,但也有不应该出现的选项,麻烦老师给看一下,代码到低出在哪里。谢谢老师!!


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业选科筛选公式.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/7 17:05:00 [只看该作者]

If Filter > "" Then
    Tables("专业录取线").Filter = Filter
End If

改为

If Filter > "" Then
if tj > "" then 
Filter = Filter & " and " & tj
end if
    Tables("专业录取线").Filter = Filter
End If

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:6035 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/5/7 19:07:00 [只看该作者]

老师,修改了。当“选科系列”为历史时,考生选科中,历史中六个选科可以按要求,得出筛选结果。但当“选科系列”为物理时,物理中六个选科,不管选哪个组合,最后筛选出的结果,依然是“物理,化学,生物”的组合结果,这是啥原因?如果说代码有错误,为啥选历史时,得出的结果,就是正确的;如果说代码没有错误,为啥选物理时,得出的结果又不对。如考生选科为“物理,生物,思想政治”时,得出的筛选结果还是“物理,化学,生物”的组合结果。老师您看问题出在哪里了?

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:6035 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/5/8 8:38:00 [只看该作者]

Xkmys.Add("不限")
Xkmys.Add(Xks(0) & "和" & Xks(1))

带“和”的一般都不被筛选!!不知道是什么原因?

 回到顶部
总数 21 1 2 3 下一页