• ベストアンサー

oracle8、Access97でFormat関数が使えない

oracle側のテーブルにtoshitsukiフィールドがあり、そこに「200203」というデータがあるとき、Access97のフォーム上にこのデータを呼び出すときテキストボックスに「2002/03」と変換したいのですがどうすればいいのですか?現状はうまくできません。今現在のコードは下のようにしています。 Dim myDate as Date Dim myStr as String --------------------------- Me.txt_toshitsuki=Oracle.Fields("toshitsuki").Value myDate=Me.txt_toshitsuki myStr = Format(myDate, "yyyy/mm") これだとブレークポイントをし、確認してみたところ Me.txt_toshitsukiのところでは「200203」ですが myDateのところでは「2448/02/18」 myStrのところでは「2448/02」となります。 どこが原因なのでしょうか?初心者なのでお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

これはきっと、toshitsuki フィールドが整数だから、ですね。 Me.txt_toshitsuki は、整数で 200203 が入っているわけで、それを Date な型に 渡されても VBA は、あなたが考えていることまで察することはできませんから、 標準的な変換(基準日からの経過日数)をしてしまいます。 myDate を整数型にして、Format は、Format(myDate, "0000\"/\"00") という感じ にしたらうまくいく、かも。 # VB はよく知らないです。文字列中にダブルクォーテーションを入れるあたりが自信なし

その他の回答 (1)

回答No.1

結論からいうと、myDateをDate型からStr型に変更すれば、動きます。 >myDate=Me.txt_toshitsuki オラクル側の型が何なのか不明ですが、 テキストボックスに入れたものは、文字列ですので、 文字列を強引にDate型へ変換しています。 基準日?(1889/12/31)より200203日目の日付を取得していると思われます。

関連するQ&A