DOBON.NET DOBON.NETプログラミング掲示板過去ログ

日付の検索

  • 題名: 日付の検索
  • 著者: AKATSUKI
  • 日時: 2003/11/21 15:36:30
  • ID: 1519
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
分類:[.NET]

データベース ACCESS
日付  |   予定
--------------------------
2003/01/01 | AAAA
2003/01/02 | AAAB
2003/01/03 | AAAC
2003/01/04 | AAAD
2003/01/05 | AAAE
2003/01/06 | AAAF
2003/01/07 | AAAC

日付の範囲を指定して検索してデーターグリッドに表示するにはどうしたら
いいんでしょうか?
(例 2003/01/01 〜2003/01/04 の予定を検索してデーターグリッドに表示)
カレンダーで日付の範囲を指定するようになっています。

【カレンダーで日付範囲のプログラムソース】
private void monthCalendar1_DateChanged(object sender, System.Windows.Forms.DateRangeEventArgs e){
   textBox1.Text = monthCalendar1.SelectionStart.ToString("d");
   textBox2.Text = monthCalendar1.SelectionEnd.ToString("d") ;
 }
■No1519に返信(AKATSUKIさんの記事)
> データベース ACCESS
> 日付  |   予定
> --------------------------
> 2003/01/01 | AAAA
> 2003/01/02 | AAAB
> 2003/01/03 | AAAC
> 2003/01/04 | AAAD
> 2003/01/05 | AAAE
> 2003/01/06 | AAAF
> 2003/01/07 | AAAC
>
> 日付の範囲を指定して検索してデーターグリッドに表示するにはどうしたら
> いいんでしょうか?
> (例 2003/01/01 〜2003/01/04 の予定を検索してデーターグリッドに表示)
> カレンダーで日付の範囲を指定するようになっています。
>
> 【カレンダーで日付範囲のプログラムソース】
> private void monthCalendar1_DateChanged(object sender, System.Windows.Forms.DateRangeEventArgs e){
>    textBox1.Text = monthCalendar1.SelectionStart.ToString("d");
>    textBox2.Text = monthCalendar1.SelectionEnd.ToString("d") ;
>  }
>
fukuです、こんにちは。
SELECT文内のWHERE区を設定すれば良いと思います。
例えば
"SELECT 日付,予定 FROM テーブル名 WHERE (日付>=#" & textBox1.Text & "#) AND ("日付<=#" & textBox2.Text & "#))"

以上です。
> fukuです、こんにちは。
> SELECT文内のWHERE区を設定すれば良いと思います。
> 例えば
> "SELECT 日付,予定 FROM テーブル名 WHERE (日付>=#" & textBox1.Text & "#) AND ("日付<=#" & textBox2.Text & "#))"
>
> 以上です。
>
ちょっと初心者なのでよく分からないのですが・・・。
プログラム内ではどうすればいいのでしょうか?
一応下記のようにしてみたんですができません。
ボタンを押したらデータグリッドに表示されるようにしてあります。

=========プログラムソース===============
private void button2_Click(object sender, System.EventArgs e)
{
    oleDbDataAdapter1.Fill(dataSet41, "T_入力");
}
================================
> ちょっと初心者なのでよく分からないのですが・・・。
> プログラム内ではどうすればいいのでしょうか?
> 一応下記のようにしてみたんですができません。
> ボタンを押したらデータグリッドに表示されるようにしてあります。
> 

fukuです、おはようです。
説明が面倒なのでサンプルを作ってみました。
どうかな?

    'DataGridへ設定
    Private Sub Form7_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim intReccount As Integer

        intReccount = Me.OleDbDataAdapter1.Fill(Me.DataSet41, "T_入力")
        Me.DataGrid1.DataSource = Me.DataSet41
        Me.DataGrid1.DataMember = "T_入力"
    End Sub

    '日付の変更
    Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
        Me.TextBox1.Text = MonthCalendar1.SelectionStart.ToString("d")
        Me.TextBox2.Text = MonthCalendar1.SelectionEnd.ToString("d")
    End Sub

    'DataGridの更新
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim myOleDbCommand As New OleDb.OleDbCommand
        Dim intReccount As Integer
        Dim strSQL As String

        '日付抽出用
        strSQL = "SELECT 日付,予定 FROM T_入力 " & _
                "WHERE ((日付>=#" & Me.TextBox1.Text & "#) AND (日付<=#" & Me.TextBox2.Text & "#))"
        myOleDbCommand = New OleDb.OleDbCommand(strSQL, Me.OleDbConnection1)

        'SELECT用のOleDbCommandを設定
        Me.OleDbDataAdapter1.SelectCommand = myOleDbCommand
        '読み込む前にテーブルをクリア
        Me.DataSet41.Tables("T_入力").Clear()
        'DataSetへ再読み込み
        intReccount = Me.OleDbDataAdapter1.Fill(Me.DataSet41.Tables("T_入力"))

        myOleDbCommand.Dispose()
        myOleDbCommand = Nothing

    End Sub

以上です。
言語はC#なのですが このまま打つとエラーがでます。
どうしたらよいのでしょうか?
くだらない質問して誠にすいません。
■No1533に返信(AKATSUKIさんの記事)
> 言語はC#なのですが このまま打つとエラーがでます。
> どうしたらよいのでしょうか?
> くだらない質問して誠にすいません。

fukuです、こんにちは。
HELPでクラス名で検索すれば、そのクラスに対するC#の
記述が載っています。
ポイントは、SelectCommandへのSQL文の設定とDataSetへの
再読み込みです。

以上です。
■No1536に返信(fukuさんの記事)
> ■No1533に返信(AKATSUKIさんの記事)
>>言語はC#なのですが このまま打つとエラーがでます。
>>どうしたらよいのでしょうか?
>>くだらない質問して誠にすいません。
>
> fukuです、こんにちは。
> HELPでクラス名で検索すれば、そのクラスに対するC#の
> 記述が載っています。
> ポイントは、SelectCommandへのSQL文の設定とDataSetへの
> 再読み込みです。
>
> 以上です。
>
>
Dim intReccount As Integer などのところの Asのところにエラー
がででしまいます。どうしたらよいのでしょうか?
何度も質問してすいません。
■No1540に返信(AKATSUKIさんの記事)

VB.NETのコードをC#に変換する方法を下のURLで紹介していますので、こちらを参考にしてください。

・.NET Tips - VB.NETのコードをC#へ変換する
http://dobon.net/vb/dotnet/links/convertvb2cs.html

投稿時には使用言語を明記できる「環境/言語」欄がありますので、これからは言語を指定したい時は必ずご記入ください。
■No1540に返信(AKATSUKIさんの記事)
> ■No1536に返信(fukuさんの記事)
>>■No1533に返信(AKATSUKIさんの記事)
>>
> Dim intReccount As Integer などのところの Asのところにエラー
> がででしまいます。どうしたらよいのでしょうか?
> 何度も質問してすいません。
>  
fukuです。
C#です。

        //DataGridへ設定
        private void Form1_Load(object sender, System.EventArgs e)
        {
            int intReccount;
            intReccount = oleDbDataAdapter1.Fill(dataSet41, "T_入力");
            dataGrid1.DataSource = dataSet41;
            dataGrid1.DataMember = "T_入力";

        }

        //日付の変更
        private void monthCalendar1_DateChanged(object sender, System.Windows.Forms.DateRangeEventArgs e)
        {
            textBox1.Text = monthCalendar1.SelectionStart.ToString("d");
            textBox2.Text = monthCalendar1.SelectionEnd.ToString("d") ;
        }

        //DataGridの更新
        private void button2_Click(object sender, System.EventArgs e)
        {
            OleDbCommand myOleDbCommand;
            int intReccount;
            string strSQL;

            //日付抽出用
            strSQL = "SELECT 日付,予定 FROM T_入力 WHERE ((日付>=#" + textBox1.Text + "#) AND (日付<=#" + textBox2.Text + "#))";
            myOleDbCommand = new OleDbCommand(strSQL, oleDbConnection1);

            //SELECT用のOleDbCommandを設定
            oleDbDataAdapter1.SelectCommand = myOleDbCommand;
            //読み込む前にテーブルをクリア
            dataSet41.Tables["T_入力"].Clear();
            
            //DataSetへ再読み込み
            intReccount = oleDbDataAdapter1.Fill(dataSet41, "T_入力");

            myOleDbCommand.Dispose();

        }
何度も質問して迷惑かけてすいません。
誠にありがとうごさいました。
またまた質問したいんですけど、

データベース ACCESS
日付  |   名前 | 予定
---------------------------------
2003/01/01 |  Aさん  | AAAA
2003/01/02 | Aさん  | AAAB
2003/01/03 | Bさん  | AAAC
2003/01/04 | Bさん  | AAAD
2003/01/05 | Aさん  | AAAE
2003/01/06 | Cさん  | AAAF
2003/01/07 | Cさん  | AAAC

日付の範囲と名前を指定して検索してデーターグリッドに表示するにはどうしたら
いいんでしょうか?
名前はtextBox3に入力するようになってます。
■No1622に返信(AKATSUKIさんの記事)
> またまた質問したいんですけど、
>
> データベース ACCESS
> 日付  |   名前 | 予定
> ---------------------------------
> 2003/01/01 |  Aさん  | AAAA
> 2003/01/02 | Aさん  | AAAB
> 2003/01/03 | Bさん  | AAAC
> 2003/01/04 | Bさん  | AAAD
> 2003/01/05 | Aさん  | AAAE
> 2003/01/06 | Cさん  | AAAF
> 2003/01/07 | Cさん  | AAAC
>
> 日付の範囲と名前を指定して検索してデーターグリッドに表示するにはどうしたら
> いいんでしょうか?
> 名前はtextBox3に入力するようになってます。
>
>

fukuです、こんばんは。
異なる質問は、別スレッドにした方が良いと思いますよ。
日付の件は、解決しましたか?

SQL文WHERE区を使います。(評価していないのスペルミスがあれば直してください)
1)あいまい検索の場合
"SELECT 日付,名前,予定 FROM T_入力 WHERE (((日付>=#" + textBox1.Text + "#) AND (日付<=#" + textBox2.Text + "#)) AND (名前 Like '*" + textBox3.Text + "*'))";
2)絶対一致の場合(大文字、小文字は判別しません)
SQL文WHERE区を使います。(評価していないのスペルミスがあれば直してください)
"SELECT 日付,名前,予定 FROM T_入力 WHERE (((日付>=#" + textBox1.Text + "#) AND (日付<=#" + textBox2.Text + "#)) AND (名前 = '" + textBox3.Text + "'))";

以上です。
  • 題名: Re[11]: 日付の検索
  • 著者: AKATSUKI
  • 日時: 2003/12/03 2:50:45
  • ID: 1649
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
いろいろと
ありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板