Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1244 / 2272 ツリー ←次へ | 前へ→

【8036】変数へ日付を代入する kyou 06/6/23(金) 10:29 質問[未読]
【8038】Re:変数へ日付を代入する クロ 06/6/23(金) 11:13 回答[未読]
【8039】Re:変数へ日付を代入する kyou 06/6/23(金) 13:36 質問[未読]
【8040】Re:変数へ日付を代入する クロ 06/6/23(金) 14:15 回答[未読]
【8049】Re:変数へ日付を代入する kyou 06/6/26(月) 10:00 お礼[未読]

【8036】変数へ日付を代入する
質問  kyou  - 06/6/23(金) 10:29 -

引用なし
パスワード
   WinXP
Access2002です。

初心者です。
WT_設定マスタにある日付を変数に代入して
SQL文を実行したいのですが
実行時エラーが表示されてうまくいきません。
修正の仕方を教えて下さい。
宜しくお願い致します。


Call PS_個別原価管理表初期化

Dim dateA As Date
Dim dateB As Date
Dim strSQL As String

dateA = "#" & DLookup("始日", "WT_設定マスタ", "pk='1'") & "#"
dateB = "#" & DLookup("締日", "WT_設定マスタ", "pk='1'") & "#"

strSQL = "INSERT INTO WT_個別原価管理表 ( 工事番号, 受注日 ) " & _
     "SELECT T_工事台帳.工事番号, T_工事台帳.受注日 " & _
     "FROM T_工事台帳 " & _
     "WHERE (((format(T_工事台帳.受注日,'yyyy/mm/dd'))>=dateA " & _
     "And (format(T_工事台帳.受注日,'yyyy/mm/dd')<=dateB)); "

DoCmd.RunSQL strSQL

【8038】Re:変数へ日付を代入する
回答  クロ  - 06/6/23(金) 11:13 -

引用なし
パスワード
   こんちには
T_工事台帳テーブルの受注日のデータ型はなんですか?
日付型なら

Dim dateA As String, dateB As As String, strSQL As String

'文字列でいいです。
dateA = DLookup("始日", "WT_設定マスタ", "pk='1'")
dateB = DLookup("締日", "WT_設定マスタ", "pk='1'")

strSQL = "INSERT INTO WT_個別原価管理表 ( 工事番号, 受注日 ) " & _
     "SELECT T_工事台帳.工事番号, T_工事台帳.受注日 " & _
     "FROM T_工事台帳 " & _
     "WHERE T_工事台帳.受注日 Between #" & dateA & "# " & _
     "And #" & dateB & "#; "

DoCmd.RunSQL strSQL
でよいかと思います。
始日、締日、受注日の日付型の表記が yyyy/mm/dd の場合です。
yy/mm/dd ですとちょっと工夫が必要。

【8039】Re:変数へ日付を代入する
質問  kyou  - 06/6/23(金) 13:36 -

引用なし
パスワード
   ▼クロ さん:

ご指導ありがとうございます。
無事実行できました。

>T_工事台帳テーブルの受注日のデータ型はなんですか?

T_工事台帳はSQLサーバーからのリンクテーブルで
受注日は日付型ですが yyyy/mm/dd hh:mm の形式で
格納されている場合があります。

受注日が月末の場合に hh:mm がついていると抽出対象外になるので
クエリのデザイングリッドでは
Format([受注日],"yyyy/mm/dd")としてhh:mmを排除していました。
お手数ですがhh:mmの排除する場合には
どのように書いたらよいかを教えて頂きたく、お願い致します。

【8040】Re:変数へ日付を代入する
回答  クロ  - 06/6/23(金) 14:15 -

引用なし
パスワード
   こんにちは

>受注日が月末の場合に hh:mm がついていると抽出対象外になるので
>クエリのデザイングリッドでは
>Format([受注日],"yyyy/mm/dd")としてhh:mmを排除していました。

混然しているとそうなるようですね。
CDate(Format([受注日],"yyyy/mm/dd")
のようにフォーマット後に明示的に日付型にしてあげてはどうでしょうか?

【8049】Re:変数へ日付を代入する
お礼  kyou  - 06/6/26(月) 10:00 -

引用なし
パスワード
   ▼クロ さん:
>こんにちは
>
>>受注日が月末の場合に hh:mm がついていると抽出対象外になるので
>>クエリのデザイングリッドでは
>>Format([受注日],"yyyy/mm/dd")としてhh:mmを排除していました。
>
>混然しているとそうなるようですね。
>CDate(Format([受注日],"yyyy/mm/dd")
>のようにフォーマット後に明示的に日付型にしてあげてはどうでしょうか?

フォーマット関数でやってみましたら
ちゃんと動きました。
ありがとうございました。

1244 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078226
(SS)C-BOARD v3.8 is Free