-1

iam 使用 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.

谢谢

请帮助

我是初学者

4

5 回答 5

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 的观点,因为您不应该在列名中使用日期,因为它通常是保留字。[] 解决了这个问题,但从长远来看,这会让生活变得更加艰难。

于 2013-08-22T16:28:54.760 回答
0

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

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

于 2013-08-22T14:06:13.817 回答
0

Format = stdate("mm/dd/yyyy") 和 Format = edate("mm/dd/yyyy") 行在我看来不像是有效的 VB6。

您需要通过将位粘合在一起来构建查询字符串,解释器看不到引号内以了解您想要一个变量

"SELECT * FROM sales_info WHERE date BETWEEN #" & stdate & "# and #" & edate &"#"

于 2013-08-22T14:06:17.783 回答
0

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

于 2019-04-10T23:34:36.910 回答
0

试试这是否有效。:)

    Adodc1.RecordSource = = "SELECT * " & "FROM tbl " & _
        "WHERE Date >= #" & stdate & "# AND Date <= #" & edate & "# "
    Adodc1.Requery
于 2015-09-27T09:33:31.070 回答