• ベストアンサー

VB2008,DateTimePickerで指定する年月について

お世話になります。 現在、VB2008で開発をしているのですが、DateTimePickerのCustomFormatで年/月のみの表示にしており、その値をもとに Selectをかけたいと思っているのですが、指定した月のみのデータを 抽出する書き方が分かりません。 selectの条件にDateTimePickerの値を設定すると、その月より前の データをすべて参照してしまいます。(2009/5と入力すると2009/4などのデータまで参照してしまう。) すみません、初歩的な質問かもしれませんが、どうかコードの書き方を教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

追加 日付を部分的に取り出して比較ってほうが普通かも。 SQLServerやAccessであればDATEPART、 PostgreSQLやOracel,MySQL等ならEXTRACTあたり (PostgreSQLならDATE_PARTも可) 一度日付関連の関数に一通り目を通してみるとよいでしょう。

cabwik
質問者

お礼

ありがとうございます。 提示していただいた情報を元にもう一度調べなおしてみようと思います。

その他の回答 (2)

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.3

日付項目とDateTimePicker1の年と月が一致した場合とすれば sql= "select * from [テーブル名] wherer (Year([日付項目])=" & Year(DateTimePicker1.Value) & ") And (Month([日付項目])=" & Year(DateTimePicker1.Value) & ")" とかでは?

回答No.1

範囲で指定すればいいのでは? BETWEEN あたりを使って、月の最初の日から最後の日の間と指定するとか。 それか日付を文字列として(yyyy/mmの形式に)成形してwhere句に指定するとか。 データベースが何なのか分からないのでこれ以上具体的なSQL文はかけませぬ。

cabwik
質問者

お礼

回答ありがとうございます。 selectで一度書いたんですけど、それをVBでどう記述するのかと思いまして・・・、早速bluecampusさんが提供してくださった考え方で書いてみます。

関連するQ&A

  • DateTimePickerに値を入れたいのですが…

    VB2005環境です。 DateTimePickerコントロールに値を入れたいのですが、 うまくいきません。 コードとしては、下記のような記述をしました。 DateTimePicker.Value = CDate(Format(Me.fg.Item(Me.fg.Row, 2).ToString, "0000/00")) FlexGrid(FlexGrid.Net)から取得した値を0000/00の形に 直そうとしたのですが…。 ((Me.fg.Item(Me.fg.Row, 2).ToStringをウォッチしてみますと、 String型で200707と値が入っています)。 代入の方法をご教授いただけないでしょうか? よろしくお願いします。

  • VB2005 データセットの内容をDBに更新

    VB2005Expressにて開発を行っています。 ・DBから条件を指定して抽出した値をデータセットにセット ・データセット内の値を編集(追加、更新、削除) ・データセットの値をDBへ更新 という処理を行った場合、DB側では 1.データセットの値だけが更新される  (抽出されてないデータは残っている) 2.データセットの値に更新されるので、データセットの値のみになる  (抽出されてないデータは消えてしまう) のどちらなのでしょうか。 どなたかご存知でしたら教えてください。

  • C# DateTimePicker をキー入力でDropDownしたい

    はじめまして。 Vs2005で開発しています。 DateTimePickerでキー入力でDropDownしたいのですが、 うまくいきません。 現在の処理は、DateTimePickerの派生クラスを作成して、 KeyUpイベント内で、Spaceキーがクリックされた場合に、 OnDropDownを呼び出しています。 ソースコードは明日にでも、掲載します。 よろしくお願いします。

  • 他のformのコントロールの値の取得の仕方

    よろしくお願いします。 開発環境はVb2005です。 Form1のDateTimePicker1に入力された日付をForm2で取得したいのですが、どのように取得するのでしょうか? 参考書を調べたのですが該当がありませんでした。上記のように他のFormのコントロールの値を参照するという方法はあまり一般的ではないのでしょうか?

  • VB.NETのテキストボックスの書式指定

    VB.NETで開発練習中です。 フォームへ呼び出したデーターを、数値データであれば カンマ区切りとか、小数点以下の桁数を指定するのは どうしたらできるのでしょうか? ソースのACCESSのテーブルには指定してあっても、 呼び出したデータには当然反映されませんよね。 初歩的ですがどなたか教えてください。 よろしくお願いします。

  • 月指定でのデータ抽出

    VB2008でひと月分のデータを抽出したいのですが、うまくできません。入力画面からリスト形式で年と月を指定(例2011年1月)を指定して、SQL文を作成してみましたがエラーになりました。どなたか教えていただけませんでしょうか

  • VB2005  C# データ書き込みのためのコード

    フォームのTextBox、DateTimePicker、MaskedTextBoxに入力したデータを 登録ボタンをクリックして、SQLのデータSet(Table)に書き込んでいくたためのコードを知りたいのですがどなたかご教示ください。 開発環境は、Visual Studio2005 Standerd Editionで言語はC#です。 宜しくお願いいたします。

  • VB.NETのSQL文について

    質問失礼します。 VB、SQLともに勉強しはじめて日が浅い初心者ですが、どなたかお力をお貸しください。 データベースに登録しているデータをNPOIを使って、出力したいと考えています。 DataTableを使用して作りましたが、上手くできない部分があります。 テーブルのカラムは、社員番号、事務物販名、登録数、登録日、更新日のようなものが入っているイメージです。 登録日を検索して、全てのテーブルを抽出したいのですが、○月○日〜○月○日にデータを登録した人というときに、つまづいてしまいました。 SQL.Append("SELECT " ) ・ ・ SQL.Append("WHERE ") SQL.Append(" 登録日 BETWEEN パラメータ1 AND パラメータ2 ) のように、書いたところ問題なく、出力されました。 パラメーターの部分は、DateTimePickerコントロールを配置して、日付を入力した値を設定しています。 2023/1/1 と 2023/1/2と2つ入力して、この2日間のデータを出そうとしたところ、1/1の文しか出力されませんでした。 原因は、データベースに入っているのは、Date型で、YYYY/MM/DD HH:mm:SS形式でした。 1/2の0時以降は、該当データに含まれないということは分かっているのですが、それを含めてのSQLの書き方がわかりません。 単純にSQLを書くには、 BETWEEN 2023/1/1 AND 2023/1/2 23:59:59 で、2日の文を抽出されますが、VBに書く時がうまくできない状態で、 時間の部分を、結合すれば良いのかと思い、 SQL.Append("SELECT " ) ・ ・ SQL.Append("WHERE ") SQL.Append(" 登録日 BETWEEN パラメータ1 AND パラメータ2 II '23:59:59' ") と、DataTimePickerから持ってきた、パラメータの日付に時間を結合してみたところ、ダメでした。 型の問題なのか、よくわからず、勉強している状態です。 基礎がなっておらず、初歩的なミスかと思いますが、ご指導ください。 データベースはOracleを使用しています。

  • MS ACCESS 年月指定の抽出について

    MS ACCESS利用初心者です。 SQL ServerのデータをMS ACCESS 2010を使用しリンクテーブルで データの抽出をしたいと苦戦しております。 データにデータ型が短いテキストに日付(YYYY/MM/DD)が入っているのですが、 年月(YYYY/MM)を指定して、その年月のデータを抽出するため、 抽出条件には、どのように記述すれば良いのでしょうか。 ご協力お願いいたします。

  • VBからの作業フォルダ指定

    VB6.0について質問です。 SPSSという統計ソフトをVBから起動しています。 起動後、統計ソフトから外部データの参照を行うときに プロパティから作業フォルダを指定しているのにもかかわらず System32のフォルダが開いてしまいます。 この原因にはどのようなことが考えられますか? SPSSを単独で起動した場合は指定されたフォルダが開きます。 VBから起動ソフトの作業フォルダを指定する必要があるようなのですが お知恵をお貸しください><

専門家に質問してみよう