如何在日期之间搜索?

时间:2013-08-22 13:55:17

标签: vb6

我使用ms访问数据库,我想在两个日期之间获取数据

stdate= starting date

edate=end date

我使用下面的代码。

Private Sub Label3_Click()
DataGrid1.Visible = True
Dim stdate As Date
Dim edate As Date
Format = stdate("mm/dd/yyyy")
Format = edate("mm/dd/yyyy")
stdate = Text1.Text
edate = Text2.Text

Adodc1.RecordSource = "SELECT * FROM sales_info WHERE  date BETWEEN &stdate& and              &edate& "
Adodc1.Refresh
End Sub
我得到的错误是:

syntax error expected array(in format statement)

 missing operator in query expression date.

谢谢

plz help

我是初学者

5 个答案:

答案 0 :(得分:1)

此代码应该有效 -

Private Sub Label3_Click()
  DataGrid1.Visible = True
  Dim stdate As String
  Dim edate As String
  stdate = Format(Text1.Text, "mm/dd/yyyy")
  edate = Format(Text2.Text, "mm/dd/yyyy")

  Adodc1.RecordSource = "SELECT * FROM [sales_info] WHERE [date] BETWEEN #" & stdate & " and " & edate & "]"
  Adodc1.Refresh
End Sub

我也同意@Joe的意思,你不应该使用日期作为列名,因为它通常是一个保留字。 []解决这个问题,但从长远来看,这将使生活变得更加艰难。

答案 1 :(得分:0)

尝试更改字段的名称,因为日期是保留关键字。

更改日期格式后,使用符合VB6的格式(带#)

答案 2 :(得分:0)

行格式= stdate(“mm / dd / yyyy”)和格式= edate(“mm / dd / yyyy”) 对我来说看起来不是有效的VB6。

你需要通过将这些位粘合在一起来构建查询字符串,解释器无法在引号内看到你想要一个变量吗

“SELECT * FROM sales_info WHERE date BETWEEN#”& stdate& “#和#”& edate&“#”

答案 3 :(得分:0)

尝试这是否有效。 :)

    Adodc1.RecordSource = = "SELECT * " & "FROM tbl " & _
        "WHERE Date >= #" & stdate & "# AND Date <= #" & edate & "# "
    Adodc1.Requery

答案 4 :(得分:0)

Table_1BindingSource.Filter =“ DateColumnName> =#&DateTimePicker1.text&”#and DateColumName <=#“&DateTimePicker2.text&”#“