日付の表示形式の変換について

タグの編集
投稿者 たすく  (社会人) 投稿日時 2009/10/23 00:39:56
 

いつもお世話になっております。


テキストボックスに表示された「yyyy年mm月dd日(aaa)」形式の日付を、
SQLサーバ側のテーブルにDATE型形式「yyyy-mm-dd」で保存したいのですが、
どのように変換すればよいでしょうか?
今現在、下記のコードを試したところ、『型が一致しません』のエラーが返ってきます。


Private Sub Form_Load()

'フォームロード時、text1に日付を表示 
     text1.Text = Format(Date"yyyy年mm月dd日(aaa)")

End Sub




Private Sub Save_Click()

~中略~

'サーバ上のテストテーブル「days」フィールドに「yyyy年mm月dd日(aaa)」をDate型「yyyy-mm-dd」で保存 
  
  rs.AddNew                         '新規レコード追加 
  rs!days = Format(CDate(Split(text1.Text, "(")(0)), "'YYYYMMDD'\;")

  rs.Update                         '更新(保存) 
  rs!days = Format(CDate(Split(text1.Text, "(")(0)), "'YYYYMMDD'\;")
    
~中略~
      
End Sub



ご教示よろしくお願いします。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/10/23 00:51:35
VB の Date 型として得たいのであれば、『CDate(Split(Text1.Text, "(")(0))』だけで OK かと。

『Format(CDate(Split(Text1.Text, "(")(0)), "'YYYYMMDD'\;")』だと、
「'20091022';」といった文字列になってしまいますから。


> Date型「yyyy-mm-dd」で保存
日付を「String 型にする時」には書式指定が必要ですが、
Date 型そのものに書式はありません。

SQL として出力する場合とは異なり、Recordset 経由で出力する場合には、
Date 型を String に変換する必要は無いはずです。
投稿者 たすく  (社会人) 投稿日時 2009/10/23 01:28:14
>魔界の仮面弁士さん

ご回答ありがとうございます!!
アドバイスのとおりコーディングしてみたところ、
通ることが出来ました!
プログラムをコーディングして3ヶ月経ちますが、
いまだに「(,"」や演算子の小さなミスに気づかず、
悩んでしまいます。


また壁にぶちあったときにはご教示ください!
ありがとうございました