投稿者 河童  (社会人) 投稿日時 2011/3/4 11:58:41
こんにちは。

魔界の仮面弁士さん、shuさん、
お返事ありがとうございます。

SQL Server 2005 Express という
無償版のデータベースを使用しています。

日付型の列に対して、
WHERE 日付 >= '2011/03/01' AND 日付 < '2011/04/01'
のように問い合わせを行った方が良いというアドバイスを元に
下記のように修正しました。

抽出条件は1日から月末までなので、
simeYMD(テキストボックスに入力されている日付)から
開始日と終了日を計算します。

開始日は、
simeYMDからその年月をMid関数で取得し「/01」を付け加えます。

終了日は、
開始日に1ケ月加えた後に1日引いてその月の月末を求めます。

'開始日
Dim strYMD As Date = DateTime.Parse(Mid(simeYMD, 1, 7) & "/01")
'終了日
Dim endYMD As Date = DateAdd(DateInterval.Day, -1, DateAdd(DateInterval.Month, 1, strYMD))

'SQL文のWHERE条件
strSql &= " S.日付 >='" & strYMD & "' AND "
strSql &= " S.日付 <='" & endYMD & "' "

この条件で1日から月末までのデータを取得することが出来ました。

後学のため教えて頂きたいことがあります。 
>(実際には、日付データをSQLに埋め込まず、パラメータ化して問い合わせた方が良いですが)
パラメータ化して問い合せるとはどういうことですか?

もしかしてストアド プロシージャというものを作成して
開始日と終了日をパラメータとして渡すというものですか?
 
>> strSql &= " S.今回請求支払額,"
>ここの最後の『,』はいらないです。 
ご指摘ありがとうございます。
コードを確認してみると、
投稿するときのタイプミスでした。