Foxtable(狐表)用户栏目专家坐堂 → 模糊查询表达式错误


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

主题:模糊查询表达式错误

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


加好友 发短信
等级:小狐 帖子:372 积分:2582 威望:0 精华:0 注册:2012/10/29 8:32:00
模糊查询表达式错误  发帖心情 Post By:2016/4/5 12:57:00 [只看该作者]

语句如下:
Dim Filter As String
Dim PRID As String = e.Form.Controls("PrId").value
Dim PRNAME As String = e.Form.Controls("PrMName").value
Dim PRMODEL As String = e.Form.Controls("PrModel").value
Dim PRPRJO As String = e.Form.Controls("PrPrjno").value
Dim PRUSER As String = e.Form.Controls("PrUser").value
PRNAME =  "'%" & PRNAME & "%'"
PRMODEL = "'%" & PRMODEL & "%'"
PRUSER = "'%" & PRUSER & "%'"
Filter = "申请单号 =" & PRID & "And 物料名称 like " & PRNAME & "And 规格图号 like " & PRMODEL & "And 申请人 like " & PRUSER & "And 工程号 =" & PRPRJO
DataTables("采购申请查询_table1").LoadFilter = Filter
DataTables("采购申请查询_table1").Load()

错误信息如下:
.NET Framework 版本:2.0.50727.8670
Foxtable 版本:2016.3.27.1
错误所在事件:加载[采购申请查询_Table1]失败!
详细错误信息:
语法错误 (操作符丢失) 在查询表达式 '(申请单号 =PR000001And 物料名称 like '%%'And 规格图号 like '%%'And 申请人 like '%%'And 工程号 =)' 中。

麻烦帮忙看下正确的语句应该怎么样写,谢谢!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 15:01:00 [只看该作者]

Filter = "申请单号 = '" & PRID & "' And 物料名称 like " & PRNAME & "And 规格图号 like " & PRMODEL & "And 申请人 like " & PRUSER & "And 工程号 = '" & PRPRJO & "'"

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/5 15:02:00 [只看该作者]

 如果你要做查询,用这种方式才对。

 

http://www.foxtable.com/help/topics/1058.htm

 


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


加好友 发短信
等级:小狐 帖子:372 积分:2582 威望:0 精华:0 注册:2012/10/29 8:32:00
  发帖心情 Post By:2016/4/6 8:48:00 [只看该作者]

谢谢,主要是要模糊查询,帮助例子不能模糊查询,而且要多个参数都能模糊查询。谢谢

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/6 9:04:00 [只看该作者]

以下是引用mayazql在2016/4/6 8:48:00的发言:
谢谢,主要是要模糊查询,帮助例子不能模糊查询,而且要多个参数都能模糊查询。谢谢

 

你把 等于 = 改成 like '%内容%' 就是模糊查询了。

 

http://www.foxtable.com/help/topics/1647.htm

 


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


加好友 发短信
等级:小狐 帖子:372 积分:2582 威望:0 精华:0 注册:2012/10/29 8:32:00
  发帖心情 Post By:2016/4/6 9:14:00 [只看该作者]

谢谢,我再试下

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


加好友 发短信
等级:小狐 帖子:372 积分:2582 威望:0 精华:0 注册:2012/10/29 8:32:00
  发帖心情 Post By:2016/4/6 10:34:00 [只看该作者]

可以了,谢谢帮助
下面是OK的代码

Dim Filter As String
With e.Form.Controls("CmBPrid")
    If .Value IsNot Nothing Then
        Filter = "申请单号 = '" & .Value & "'"
    End If
End With
With e.Form.Controls("TBUser")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "convert(申请人, 'System.String') like '%" & .Value & "%'"
     End If
End With

With e.Form.Controls("CmBProj")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "工程号 = '" & .Value & "'"
    End If
End With

With e.Form.Controls("TbMN")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "convert(物料名称, 'System.String') like '%" & .Value & "%'"
     End If
End With

With e.Form.Controls("TBMd")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
       Filter =  Filter & "convert(规格图号, 'System.String') like '%" & .Value & "%'"
     End If
End With

If Filter > "" Then
    Tables("采购申请子表").Filter = Filter
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/6 10:36:00 [只看该作者]

convert(规格图号, 'System.String') 这些不用写,如果你的列是字符列,直接写列名就可以了的。

 回到顶部