以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  我在窗口学习编写以下代码,提示错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116095)

--  作者:mxy8898
--  发布时间:2018/3/19 22:57:00
--  我在窗口学习编写以下代码,提示错误

错误1:输入第02 列内容后提示以下错误,表达式错误,如果第02列不输入不提示错误

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
表达式中有语法错误。

 

错误2:日期我搜索的是2017-01-01 到 2017-03-01来搜索,智能搜索到2017-01-01数据,无法搜索到02、03月数据,数据库中有02、03月

 

 

Dim nms() As String = {"ComboBox1","ComboBox2","ComboBox3","DateTimePicker1","DateTimePicker1"} \'所有输入口使用STRING表示
Dim sps() As String = {"\',","\'","\'","#","#"} \'输入框使用\'表示,日期使用#表示,双引号引用,逗号分开
Dim bjf() As String = {"=","=","=",">=","<="} \'定义每个输入口搜索范围
Dim fds() As String = {"第02","第06","第05","年份日期","年份日期"}
Dim filter As String
For i As Integer = 0 To nms.Length -1
    If e.Form.Controls(nms(i)).Value IsNot Nothing Then
        If filter > "" Then
            filter = filter & " and "
        End If
        filter = filter & fds(i) & bjf(i) & sps(i) & e.Form.Controls(nms(i)).Value & sps(i)
    End If
Next
 \' 后面代码验证以上内容是否正确 = MessageBox.show(filter) \'以上搜索按钮内容
Tables("水质检测原始数据").filter = filter

e.form.controls("DateTimePicker1").Select() \'返回输入口


--  作者:有点蓝
--  发布时间:2018/3/19 23:05:00
--  
MessageBox.show(filter)显示的完整表达式是什么内容?
--  作者:mxy8898
--  发布时间:2018/3/19 23:22:00
--  

这行代码用 \'了,是不删除,留着检查以上内容是否有错。是有影响吗

试过:删除  \' 后面代码验证以上内容是否正确 = MessageBox.show(filter) \'以上搜索按钮内容也不行,提示表达式错误

[此贴子已经被作者于2018/3/19 23:33:58编辑过]

--  作者:有点甜
--  发布时间:2018/3/20 9:02:00
--  

改成这样

 

Dim nms() As String = {"ComboBox1","ComboBox2","ComboBox3","DateTimePicker1","DateTimePicker2"} \'所有输入口使用STRING表示
Dim sps() As String = {"\'","\'","\'","#","#"} \'输入框使用\'表示,日期使用#表示,双引号引用,逗号分开
Dim bjf() As String = {"=","=","=",">=","<="} \'定义每个输入口搜索范围
Dim fds() As String = {"第02","第06","第05","年份日期","年份日期"}
Dim filter As String
For i As Integer = 0 To nms.Length -1
    If e.Form.Controls(nms(i)).Value IsNot Nothing Then
        If filter > "" Then
            filter = filter & " and "
        End If
        filter = filter & fds(i) & bjf(i) & sps(i) & e.Form.Controls(nms(i)).Value & sps(i)
    End If
Next
MessageBox.show(filter)
Tables("水质检测原始数据").filter = filter

e.form.controls("DateTimePicker1").Select() \'返回输入口


--  作者:mxy8898
--  发布时间:2018/3/20 12:43:00
--  
图片点击可在新窗口打开查看强大。