标题:请问VB多条件查询方案
只看楼主
事业男儿
Rank: 2
等 级:论坛游民
帖 子:308
专家分:14
注 册:2007-4-25
结帖率:81.69%
已结贴  问题点数:20 回复次数:4 
请问VB多条件查询方案

请问一下这个跨日期段代码怎么写?   查询条件是先满足时间段 比如 7月17日-8月17日  或者 8月17日--8月17日 用了一个DTPicker1控件 只能单日的  如果用两个DTPicker1控件怎么写代码?   还有这个软件的代码感觉太臃肿了 怎么优化一下。附件如下,麻烦各位老师帮忙改一改。
多条件查询.rar (34.74 KB)

搜索更多相关主题的帖子: 方案 代码 VB 多条件 查询 
2020-08-17 02:32
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:20 
填表日期如果是日期类型,就用 "(填表日期 between #" & DTPicker1.Value & "# and #" & DTPicker2.Value & "#)"

但是你的数据库的类型是字符型的,就不能用between了。

程序代码:
Private Sub Command6_Click()

    Dim LV1 As ListItem
    Dim Sum As Long
    
    ListView1.ListItems.Clear
    Call OpenCNN
    
'    SQL = "select * from 通讯录 where (填表日期 >= '" & DTPicker1.Value & "' and 填表日期 <='" & DTPicker2.Value & "') and 村组= '" & Combo7.Text & "'and 金额类型= '" & Combo6.Text & "'"
    SQL = "select * from 通讯录 where (填表日期 >= '" & DTPicker1.Value & "' and 填表日期 <='" & DTPicker2.Value & "') "
    If Combo6.Text <> "" Then SQL = SQL & " and 金额类型= '" & Combo6.Text & "'"
    If Combo7.Text <> "" Then SQL = SQL & " and 村组= '" & Combo7.Text & "'"
    
    RST.Open SQL, CNN, 1, 3
'On Error Resume Next
    For i = 1 To RST.RecordCount
        Set LV1 = ListView1.ListItems.Add()
        LV1.Text = RST.Fields("流水单号")             '第一列要用text属性。
        LV1.SubItems(1) = RST.Fields("姓名")      '这是第2列。
        LV1.SubItems(2) = RST.Fields("金额")
        LV1.SubItems(3) = RST.Fields("村组")
        LV1.SubItems(4) = RST.Fields("金额类型")
        LV1.SubItems(5) = RST.Fields("填表日期")
        Sum = Sum + Val(RST.Fields("金额"))
        RST.MoveNext
    Next

    StatusBar1.Panels.Item(4).Text = "当前页面金额为:【" & Sum & "】元"
    RST.Close
    CNN.Close

End Sub


[此贴子已经被作者于2020-8-17 11:00编辑过]

2020-08-17 10:33
事业男儿
Rank: 2
等 级:论坛游民
帖 子:308
专家分:14
注 册:2007-4-25
得分:0 
回复 2楼 cwa9958
谢谢版主,这个软件基本符合我心意了,在美化一下界面就完美了,谢谢!
2020-08-17 12:19
china_shy_wz
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-6-5
得分:0 
支持一下
2020-08-17 15:25
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:0 
更正一下,昨天可能代码写错了,字符类型,数字类型,日期类型都可以用between
代码可以这样改一下:
SQL = "select * from 通讯录 where (填表日期 between '" & DTPicker1.Value & "' and '" & DTPicker2.Value & "') "
2020-08-18 07:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502883-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057989 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved