Foxtable(狐表)用户栏目专家坐堂 → 用 Fill 从后台数据库模糊查询问题


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

主题:用 Fill 从后台数据库模糊查询问题

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


加好友 发短信
等级:小狐 帖子:370 积分:2542 威望:0 精华:0 注册:2012/10/29 8:32:00
用 Fill 从后台数据库模糊查询问题  发帖心情 Post By:2023/2/21 15:45:00 [只看该作者]

老师好,我先写过滤条件,用 fill 从后台查询模糊查询放在窗体的 table 里。
具体的代码在附件的txt文件里。
如果只是起止日期有的话,能正常查询,但是别的条件加上后,筛选出来的数据是空的。
不知道是什么问题。麻烦老师帮忙看下。谢谢!
图片点击可在新窗口打开查看此主题相关图片如下:filter.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:小狐 帖子:370 积分:2542 威望:0 精华:0 注册:2012/10/29 8:32:00
  发帖心情 Post By:2023/2/21 15:46:00 [只看该作者]

刚才TXT文件没有传上去

e.Form.Controls("Button6").Enabled = False
Dim time1 As Date = Date.Now

'查询起始日期
Dim ssdate As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim eedate As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")

Dim sdate As Date = ssdate.Value
Dim edate As Date = eedate.Value


'查询条件,模糊查询
Dim filter As String
Filter = "申请日期 >= '" & sdate & "' And 申请日期 <= '" & edate & "'"
Dim sts() As String = {"申请人","申请单号","物料名称","规格图号","工程号","建议厂家","类别","品牌"}
For Each st As String In sts
    Dim  val As String = e.Form.Controls(st).value
    If val > "" Then
        val = val.Replace("*","[*]")
        If filter = "" Then
            filter = st & " like '*" & val & "*'"
        Else
            filter = filter & " And " & st & " like '*" & val & "*'"
        End If
    End If
Next


'用 fill 填充数据
Tables("最全查询_Table1").Fill("Sel ect prsub.[_Identify], prsub.申请日期, prsub.品牌,prsub.建议厂家, prsub.申请人, prsub.申请单号, prsub.物料名称, prsub.规格图号, prsub.单位,prsub.工程号,prsub.站号,prsub.类别, prsub.数量 as 申请数量, prsub.备注, prsub.核准, prsub.PR子表流水号, b.订单数量, c.入库数量,d.领用数量, (prsub.数量 - isnull(b.订单数量 , 0)) As 未订数量  from {prsub} left join (S elect PR子表流水号, sum(数量) As 订单数量 from {posub} group by PR子表流水号) As b on prsub.PR子表流水号 = b.PR子表流水号 left join  (S elect PR子表流水号, sum(入库数量) As 入库数量 from {inssub} group by PR子表流水号) As c on prsub.PR子表流水号 = c.PR子表流水号 left join  (Sel ect PR子表流水号, sum(领用数量) As 领用数量 from {lysub} group by PR子表流水号) As d on prsub.PR子表流水号 = d.PR子表流水号 where  " & Filter,"wsdcsql",True)




Tables("最全查询_Table1").SetColVisibleWidth("申请人|50|申请单号|60|申请日期|80|物料名称|180|规格图号|180|申请数量|60|订单数量|70|入库数量|70|领用数量|70|单位|40|工程号|60|站号|60|类别|60|备注|100|PR子表流水号|80|品牌|80|建议厂家|100")

e.Form.Controls("Button6").Enabled = True


Dim time2 As Date = Date.Now

Dim t3 As TimeSpan = time2 - time1

MessageBox.Show("本次查询耗时" & t3.Minutes & "分" & t3.Seconds & "秒" & t3.Milliseconds & "毫秒")
[此贴子已经被作者于2023/2/21 15:49:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/21 16:01:00 [只看该作者]

*号都改为%号试试
filter = st & " like '%" & val & "%'"

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


加好友 发短信
等级:小狐 帖子:370 积分:2542 威望:0 精华:0 注册:2012/10/29 8:32:00
  发帖心情 Post By:2023/2/21 16:10:00 [只看该作者]

可以了,谢谢老师!

 回到顶部