初めまして、トウガラシと申します。
初めての質問なので失礼があったらごめんなさい。
VB.NET2003でAccessで作ったテーブルにレコードの追加を行い、その時の日付と時刻もテーブル内の列(日付/時刻型)にSystem.DateTime.Nowで記録したいのが、なぜか日付だけが記録されます。
フォーム上にボタンを配置してボタンを押下したら以下の作業を行います。
実際のコードはもっとの長いのですが、取り合えず日付と時刻の更新に関わる部分だけ、抜き出してみました。
Private Sub RegistrationButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegistrationButton.Click
Dim r As DataSet1.テーブル名Row
r = DataSet11.テーブル名.NewRow
r.列名 = System.DateTime.Now '…①
DataSet11.テーブル名.Rows.Add(r)
OleDbDataAdapter1.Update(DataSet11.テーブル名)
End Sub
デバッグを行うと①のところに"7/11/2005 6:31:35 PM"と時刻まで保存されているのがわかるのですが、実際のAccessのテーブルには年月日までしか保存されません。
お知恵を拝借したいと思います。
よろしくお願いします。
MDB が認識可能な日付の書式で渡すか、
普通にテキストとして渡すかなどしましょう。
OleDbType が DBDate になっていませんか?
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200503/05030080.txt
返信が遅くなって済みません。
>じゃんぬねっとさん
>魔界の仮面弁士さん
返信、有り難う御座います。
早速試してみます。
結果の報告はしばらくお待ちください。
>魔界の仮面弁士さん
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200503/05030080.txt
上記の内容に従い、.UpdateCommand.Parameters( 日付パラメータ列 ).OleDbTypeの内容を、DBDateからDateに変更したのですが、やはりテーブルには日付のみが保存されています。
ちなみにレコードの更新を行うプログラムを作りDBDateをDateに変更して実行した所、日付と時刻の両方がテーブルに保存されていました。
このレコードの追加の場合、
DataSet11.テーブル名.Rows.Add(r)
でデータセットに行の追加を行う時に、時刻が削られるのでしょうか?
データセットプロパティで問題の列のDataTypeを見ると、『System.DataTime』になっていました。
解決しました。
レコードの新規登録で日付し保存できなかったのは、.InsertCommand.Parameters(列名).OleDbTypeの内容をDBDateからDateに変更してなかったからでした。
.UpdateCommandばかり見てたら、いつまで経っても出来ませんよね。
馬鹿だなぁ〜、俺って。
皆さん、本当にお世話になりました。
ツイート | ![]() |