-1

ms access データベースを使用していて、2 つの日付の間のデータを取得したい

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

これが機能するかどうか試してください。:)

    Adodc1.RecordSource = = "SELECT * " & "FROM tbl " & _
        "WHERE Date >= #" & stdate & "# AND Date <= #" & edate & "# "
    Adodc1.Requery
于 2015-09-27T09:33:31.070 に答える
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 に答える