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

投稿時間:2004/10/12(Tue) 10:34
投稿者名:yuta
Eメール:
URL :
タイトル:
日付を条件にしてデータを抽出する方法
はじめまして、早速ですが質問をさせていただきます。

今、VBとAccessを使ってスケジューラを作成しています。
SQLステートメントを使って、日付とその他の条件で、必要なデータをデータグリッドに出力させようとしているのですが、うまくいきません。

現在、下の通りにコードを記述しています。

--------------------------------------------------------------------------------------------
VB6.0,Access2000,ADOデータコントロールは2.5を使用しています。

T_Master,T_Sub,T_Work,T_Basyoの4つのテーブルがあります。

txtMotherDayで、抽出する日付が記入されています。フォーマットは、mm/dd/yyyyです。

'データグリッドの抽出

Dim mySQL As String     '抽出条件を代入するSQLステートメント

mySQL = "SELECT T_Sub.日付, T_Sub.連番, T_Sub.作業番号, T_Work.作業, T_Sub.場所番号," _
      & "T_Basyo.場所, T_Sub.詳細情報" _
      & "FROM T_Sub, T_Work, T_Basyo" _
      & "WHERE (((T_Sub.日付) = " & txtMotherDay.Text & "))" _
      & "AND (T_Work.作業番号 = T_Sub.作業番号)" _
      & "AND (T_Basyo.場所番号 = T_Sub.場所番号)" _
      & "ORDER BY 連番"

以下接続処理
--------------------------------------------------------------------------------------------

このときに、(((T_Sub.日付) = " & txtMotherDay.Text & "))" の部分を、
      (((T_Sub.日付) = #10/01/2004#))"
のように直接日付を指定するとうまく抽出されるのですが、上のような記述になると、抽出されません。

どうすればよいのかご教授よろしくお願いします。

投稿時間:2004/10/12(Tue) 10:55
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re: 日付を条件にしてデータを抽出する方法
> このときに、(((T_Sub.日付) = " & txtMotherDay.Text & "))" の部分を、
>       (((T_Sub.日付) = #10/01/2004#))"
> のように直接日付を指定するとうまく抽出されるのですが、上のような記述になると、抽出されません。

# 付ければ?

投稿時間:2004/10/12(Tue) 11:14
投稿者名:yuta
Eメール:
URL :
タイトル:
Re^2: 日付を条件にしてデータを抽出する方法
早速の返信、ありがとうございます。

> # 付ければ?

以前に#をつけて実行してみたんですけど、「日付の構文エラーです」と表示されてしまいました。

他にも、変数を使って比較してみたんですけれど、うまくいきませんでした。

投稿時間:2004/10/12(Tue) 11:47
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^3: 日付を条件にしてデータを抽出する方法
> 以前に#をつけて実行してみたんですけど、「日付の構文エラーです」と表示されてしまいました。

その時のmySQLの中身はちゃんと確認されたんでしょうか?

> このときに、(((T_Sub.日付) = " & txtMotherDay.Text & "))" の部分を、
>       (((T_Sub.日付) = #10/01/2004#))"
> のように直接日付を指定するとうまく抽出されるのですが、上のような記述になると、抽出されません。

直接指定で出来るなら、変数を使ってもmySQLの中身が同じなら抽出できるハズですが。


mySQL = "SELECT T_Sub.日付, T_Sub.連番, T_Sub.作業番号, T_Work.作業, T_Sub.場所番号," _
      & "T_Basyo.場所, T_Sub.詳細情報" _
      & "FROM T_Sub, T_Work, T_Basyo" _
      & "WHERE (((T_Sub.日付) = #" & Format$(txtMotherDay.Text, "mm/dd/yyyy") & "#))" _
      & "AND (T_Work.作業番号 = T_Sub.作業番号)" _
      & "AND (T_Basyo.場所番号 = T_Sub.場所番号)" _
      & "ORDER BY 連番"

投稿時間:2004/10/12(Tue) 12:54
投稿者名:yuta
Eメール:
URL :
タイトル:
【解決】: 日付を条件にしてデータを抽出する方法
たびたびのレス、ありがとうございます。

どうやら、日付のWHERE条件の記述が間違っていたみたいです。

>mySQL = "SELECT T_Sub.日付, T_Sub.連番, T_Sub.作業番号, T_Work.作業, T_Sub.場所番号," _
>      & "T_Basyo.場所, T_Sub.詳細情報" _
>      & "FROM T_Sub, T_Work, T_Basyo" _
>      & "WHERE (((T_Sub.日付) = #" & Format$(txtMotherDay.Text, "mm/dd/yyyy") & "#))" _
>      & "AND (T_Work.作業番号 = T_Sub.作業番号)" _
>      & "AND (T_Basyo.場所番号 = T_Sub.場所番号)" _
>      & "ORDER BY 連番"

のように記述して実行したところ、抽出したいデータが無事抽出できました。

ご指導いただきましてありがとうございます。