[リストへもどる]
一括表示

投稿時間:2002/10/10(Thu) 14:07
投稿者名:バックスピン
Eメール:
URL :
タイトル:
日付がおかしい
VB初心者です。VBver6、データベースはMSSQLserverをつかってプログラミング
しているのですが、SQLserverの日付データ”1952/8/8”をupdateすると、”5928/8/8”となって
しまいます。おそらく、1952を平成1952と読むと西暦3940となり、さらにこれを平成3940と読むと
西暦5828となるので、どこかでそのような処理をしているのだと思うのですが、原因が分かりません。
SQLのデータ型はdatetimeです。以下ログを載せますのでどなたか助けてください。たぶん単純な
ことなんだと思いますが・・・

Private Sub 登録ボタン_Click()
On Error GoTo error
Adodc1.Recordset.Update "生年月日", Text生年月日.Text
Exit Sub
error:
MsgBox "入力形式が不正な項目があります", , "入力形式不正"
Exit Sub
End Sub

Text生年月日のデータフォーマットプロパティは日付型 "yyyy/MM/dd" です。
この情報で足りるでしょうか。

投稿時間:2002/10/10(Thu) 14:25
投稿者名:A221
Eメール:
URL :
タイトル:
Re: 日付がおかしい
DataFormatプロパティはあくまでも連結されるコンポーネントに対してのものですので、
「Text生年月日.Text」はStringなのです。

> Adodc1.Recordset.Update "生年月日", Text生年月日.Text
Adodc1.Recordset.Update "生年月日", CDate(Text生年月日.Text)

としてみてください。

「日付リテラル」もしくは「DataValue」をキーとしてヘルプで調べてみることを
お勧めします。

投稿時間:2002/10/10(Thu) 15:06
投稿者名:バックスピン
Eメール:
URL :
タイトル:
Re^2: 日付がおかしい
ありがとうございます。教えていただいたとおりやってみたのですが、状況は変わらずです。
Text生年月日のテキストを”1952/8/8”とし、登録ボタンをクリックすると、一瞬”3940/8/8”と
表示され、その後”5928/8/8”と表示され処理が終わります。

投稿時間:2002/10/11(Fri) 02:06
投稿者名:A221
Eメール:
URL :
タイトル:
Re^3: 日付がおかしい
> ありがとうございます。教えていただいたとおりやってみたのですが、状況は変わらずです。
> Text生年月日のテキストを”1952/8/8”とし、登録ボタンをクリックすると、一瞬”3940/8/8”と
> 表示され、その後”5928/8/8”と表示され処理が終わります。

#自己レス。はじめの回答は見当違いかもしれません。

Adodc1.Recordset.Update "生年月日", "'" & Text生年月日.Text & "'"
でもだめですか?

投稿時間:2002/10/11(Fri) 10:12
投稿者名:天狼星
Eメール:
URL :
タイトル:
Re^4: 日付がおかしい
> > ありがとうございます。教えていただいたとおりやってみたのですが、状況は変わらずです。
> > Text生年月日のテキストを”1952/8/8”とし、登録ボタンをクリックすると、一瞬”3940/8/8”と
> > 表示され、その後”5928/8/8”と表示され処理が終わります。
>
> #自己レス。はじめの回答は見当違いかもしれません。
>
> Adodc1.Recordset.Update "生年月日", "'" & Text生年月日.Text & "'"
> でもだめですか?

思うに.....
dim Wdate as date
としておいて
wdate = cdate(format(Text生年月日.Text,"yyyy/mm/dd"))
を実行して
Adodc1.Recordset.Update "生年月日", "'" & wdate & "'"
じゃないでしょうか?
確か、日付のプロパティは単純にTEXTを受け付けてくれなかったような気がします。

ではでは....

投稿時間:2002/10/11(Fri) 13:44
投稿者名:困ったチャン
Eメール:
URL :
タイトル:
Re^5: 日付がおかしい
いろいろとありがとうございます。いろいろ試してみたのですが、日付を入力するTEXTのDataFormatプロパティを標準にしたところ、よく理由がわかりませんが、全て解決できてしまいました。
また分からないことがあったら教えてください。では