ASP に 2 つのテキスト ボックスがあるフォームがあります。ユーザーがそれに値を入力して送信すると、ユーザーが選択した日付の MS Access クエリからのデータが表示されます。ユーザーが両方のテキスト ボックスを空白のままにしておくだけで、データベースからの完全な出力を表示したいと考えています。
これは、アクセスのサンプル クエリです。
select column_date, field1, field2, sum(field3) from table1
where field1 like '*xyz' and
column_date between [@startdate] and [@enddate]
group by column_date, field1, field2
私のaspコードは以下に似ています:
objCmd.CommandText = "Query"
objCmd.CommandType = adCmdStoredProc
Set objParam = objCmd.CreateParameter("@startdate" , adInteger, adParamInput, 0, 0)
objCmd.Parameters.Append objParam
Set objParam = objCmd.CreateParameter("@enddate" , adInteger, adParamInput, 0, 0)
objCmd.Parameters.Append objParam
if request.form ("startdate") = "" Then
objCmd.Parameters ("@startdate") = 1
Else
objCmd.Parameters("@startdate") = request.form("startdate")
objCmd.Parameters("@enddate") = request.form("enddate")
End if
if request.form ("enddate") = "" Then
objCmd.Parameters ("@enddate") = 31
Else
objCmd.Parameters("@startdate") = request.form("startdate")
objCmd.Parameters("@enddate") = request.form("enddate")
End if
................
私の開始日と終了日は、1、2、3、4、5 などの数字のみのテキスト データ型であることに注意してください (1 は 2012 年 7 月 1 日を意味し、2 は 2012 年 7 月 2 日を意味します)。
「開始日」と「終了日」という名前の 2 つのテキスト ボックスがあります。ユーザーがボックスに日付を入力すると、クエリから 2 つの日付の間のデータが返されます。ユーザーが空白のままにすると、エラーが表示されます。
しかし、ユーザーが両方のテキスト ボックスを空白のままにすると、クエリからすべての値が返されることを確認したいと思います。ユーザーが 2 つのテキスト ボックスのいずれかに単一の値を入力すると、その日付のデータのみが返されます。
どうすれば達成できるかわかりません。