注册 登录
编程论坛 VB6论坛

请问如何在数据库中按月份查找

yflovevb01 发布于 2017-05-04 19:40, 2024 次点击
Private Sub Command1_Click()  '“查询”按钮
    If Combo1.Text = "" Then
        MsgBox "请在列表框中选择项目", , "信息提示"
        Combo1.ListIndex = 0
        Combo1.SetFocus
        Exit Sub
    Else
        Adodc1.RecordSource = "select * from guest where month(时间) =  '2005-'+ ' " _
                              + Trim(Combo1.Text) + " ' order by 时间"
        Set DataGrid1.DataSource = Adodc1
    End If
End Sub


Private Sub Form_Load()
    Adodc1.RecordSource = "select * from guest order by 编号"
    Set DataGrid1.DataSource = Adodc1
    Combo1.AddItem "1"
    Combo1.AddItem "2"
    Combo1.AddItem "3"
    Combo1.AddItem "4"
    Combo1.AddItem "5"
    Combo1.AddItem "6"
    Combo1.AddItem "7"
    Combo1.AddItem "8"
    Combo1.AddItem "9"
    Combo1.AddItem "10"
    Combo1.AddItem "11"
    Combo1.AddItem "12"
    Combo1.Text = ""
End Sub


以上是我看书抄出来的一段代码
改成我需要的东西了
然后运行程序以后
数据库会全部显示出来
不会执行按月查找
请问我需要改什么地方
最好后面加单引号注释一下
我太菜了
谢谢
4 回复
#2
Artless2017-05-05 03:35
库字段?
#3
xiangyue05102017-05-05 09:28
关键在这句
Adodc1.RecordSource = "select * from guest where month(时间) =  '2005-'+ ' " _
                              + Trim(Combo1.Text) + " ' order by 时间"

month是SQl的函数,获得了时间这个字段中的月份,你的代码为何还要记上2005
如果要按照年月查询,可以考虑 CONVERT(varchar(100), 时间, 23) ,出来的是2005-01-01的格式,再用长度截取或者模糊查询即可,
当然你也可以year + month拼接,跟你现在的方法类似。
#4
ZHRXJR2017-05-06 16:50
这样简单一点吧
For I=1 To 12
    Combo1.AddItem I
Next I
Adodc1.RecordSource = "Select * From guest Where 时间>=#"Cdate(CStr(Year(Date)) & "-" & Trim(Combo1.Text) & "-1")"# And 时间<=#"Cdate(CStr(Year(Date)) & "-" & Trim(Combo1.Text) & "-31")"#  order by 时间"
这个每个月最后一天是不一样的,可能是31,也可能是30 ,还有可能是28或29,因此,后面的  "-31" 根据月份不同而不同,否则可能发生错误。
#5
yflovevb012017-05-09 17:00
回复 3楼 xiangyue0510
请问具体怎么更改呢
1