- 題名: 日付の検索
- 日時: 2003/11/21 15:36:30
- ID: 1519
- この記事の返信元:
- (なし)
- この記事への返信:
- [1520] Re[1]: 日付の検索2003/11/21 18:09:01
- ツリーを表示
> ちょっと初心者なのでよく分からないのですが・・・。
> プログラム内ではどうすればいいのでしょうか?
> 一応下記のようにしてみたんですができません。
> ボタンを押したらデータグリッドに表示されるようにしてあります。
>
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
以上です。
■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 | 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") ;
}