[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/09/05(Tue) 00:27
投稿者名:うさ
Eメール:
URL :
タイトル:
ADODBで特定の日付を選択
現在、在庫管理のソフトを作成しています。
AccessのデータベースファイルにADODBを使用して接続し、
指定した日付のデータを抽出するところで行き詰って
います。

以下の、条件でレコードセットをOpenし、本日のデータのみ
を抽出したいのですが、本日のデータが在るにもかかわらず、
なぜかレコード数が0になってしまいます。

strSQL = "SELECT 日付, 商品, 個数  FROM 出庫記録 WHERE 日付 = " & Date

各フィールドの形式
日付 日付/時刻型
商品 テキスト型
個数 数値型

又、同じ月に属するすべてのレコードを選択する方法も必要です。

自己解決すべく、検索、書籍等で調べたのですが小生の力不足か、
解決策を見つけることが出来ませんでした。
修正すべき点、よりスマートな方法を御存知の方がおられましたら
ご教示頂きたく思います。

投稿時間:2006/09/05(Tue) 07:29
投稿者名:YK
Eメール:
URL :
タイトル:
Re: ADODBで特定の日付を選択
こんにちは。

> strSQL = "SELECT 日付, 商品, 個数  FROM 出庫記録 WHERE 日付 = " & Date


strSQL = "SELECT 日付, 商品, 個数  FROM 出庫記録 WHERE 日付 = #" & Date & "#"

投稿時間:2006/09/05(Tue) 23:34
投稿者名:うさ
Eメール:
URL :
タイトル:
Re^2: ADODBで特定の日付を選択
こんにちは、YKさん。早速アドバイス頂きましてありがとうございます。
その様に修正してみたのですが、結果は同じでした。。。
その後、いろいろ調査したのですが日付フィールドの型が
日付/時間型であるのに対し、日付のみで問い合わせているのが
原因ということはありえますでしょうか。
ブレイクを置いてstrSQLの中身を調べると、以下のようになっています。

strSQL = "SELECT 日付, 商品, 個数 FROM 出庫記録 WHERE 日付 = #2006/09/05#"

日付フィールドは時間も含むので、正確にはイコールの関係になっていません。
仮に私の勘?が正しければ、日付を日付のみの型に変換すればイコールの
関係が成り立ち、正しくレコードが選択されると思うのですが。。。
そんな変換関数があるのか、日付のみの型など存在するのか、その辺の事情が
分からず行き詰っています。
こういったケースはそう珍しくないはずなのですが、私の持っている参考書等には
記載はありませんでした。YKさん、何かヒントはありますでしょうか。
ご教示頂きたくおもいます。

投稿時間:2006/09/06(Wed) 10:12
投稿者名:かずちん
Eメール:
URL :
タイトル:
Re^3: ADODBで特定の日付を選択
> こんにちは、YKさん。早速アドバイス頂きましてありがとうございます。
> その様に修正してみたのですが、結果は同じでした。。。
> その後、いろいろ調査したのですが日付フィールドの型が
> 日付/時間型であるのに対し、日付のみで問い合わせているのが
> 原因ということはありえますでしょうか。
> ブレイクを置いてstrSQLの中身を調べると、以下のようになっています。
>
> strSQL = "SELECT 日付, 商品, 個数 FROM 出庫記録 WHERE 日付 = #2006/09/05#"
>
> 日付フィールドは時間も含むので、正確にはイコールの関係になっていません。
> 仮に私の勘?が正しければ、日付を日付のみの型に変換すればイコールの
> 関係が成り立ち、正しくレコードが選択されると思うのですが。。。
> そんな変換関数があるのか、日付のみの型など存在するのか、その辺の事情が
> 分からず行き詰っています。
> こういったケースはそう珍しくないはずなのですが、私の持っている参考書等には
> 記載はありませんでした。YKさん、何かヒントはありますでしょうか。
> ご教示頂きたくおもいます。

こんにちは、かずやんと言います。

日付フィールドには「YYYY/MM/DD hh:mm:ss」の形式で、データが入っているという事でしょうか?
だとしたら以下のSQLでAccess側の日付フィールドのフォーマットを変更すれば取得
できるのではないかと思われます。

strSQL = "SELECT 日付, 商品, 個数 FROM 出庫記録 WHERE Format(日付,'YYYY/MM/DD') = #" & Date & "#"

投稿時間:2006/09/08(Fri) 01:15
投稿者名:うさ
Eメール:
URL :
タイトル:
Re^4: ADODBで特定の日付を選択
こんばんは、かずやんさん。お返事遅くなりました。
ご教示頂きました方法を早速試してみましたところ
無事取得することができました。大変助かりました。
ありがとうございました。

任意の期間に含まれるレコードの抽出は、BETWEENを
使用することで解決しました。あわせてご報告まで。。。