こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

「型が一致しません」のエラーが出るのですが

htmlファイルのformに入力されたものを、aspで処理したいのですが、
エラーが出て困っています。
html内には
  <INPUT TYPE=text NAME=year VALUE="" SIZE=3>年
  <INPUT TYPE=text NAME=month VALUE="" SIZE=3>月
  <INPUT TYPE=text NAME=day VALUE="" SIZE=3>日
があり、

aspでは
 YEAR=Request.Form("year")
 MONTH=Request.Form("month")
 DAY=Request.Form("day")

ここで、フォームの"month"に6が入力されているときのみ、
YEARに+1925し、ほかの時には+1988したいんです。そこで

Dim NEN
NEN=YEAR
    If month="6" Then
      NEN=DateAdd("yyyy",NEN,1925)
     Else
    NEN=DateAdd("yyyy",NEN,1988)
    End If

としてみたのですが、「型が一致しません」というエラーが出てしまいます。
おそらく最初にYEARに入っている(フォームから戻ってくる)値が文字列なので、それでほかの代数?に入れても文字列として処理されてしまって、1925などの数字を足すことができないのだろうと思うんですが…それであっていますでしょうか。だとしたら、型を一致させたいんですがどうしたらいいでしょうか?
ものすごく醜い感じになってしまっていると思います…すみませんが、
よろしくお願いします。

投稿日時 - 2007-02-13 22:52:31

QNo.2750235

すぐに回答ほしいです

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

6のときにNENが1931という結果になればいいんですか?
でも、日付形式で出てきますから
結果は"1931/01/01"
となると思いますが・・・。

If month="6" Then
NEN=DateAdd("yyyy",NEN,"1925/1/1")
Else
NEN=DateAdd("yyyy",NEN,"1968/1/1")
End If

単純に足し算したいなら
NEN = CInt(YEAR) + 1925
でいいんじゃないですか?

投稿日時 - 2007-02-13 23:20:15

補足

型が~のエラーはわたしが誕生日のフォームで数値をいれないまま実行ボタンを押していたため発生したものでした。こんなことに時間をとらせてしまって申し訳ありません。どうもありがとうございました!

投稿日時 - 2007-02-15 01:16:31

お礼

あ、そうか…"yyyy"の部分だけ算出されるわけじゃないのですね。
CInt(YEAR)というのは初めて聞きました。授業でちょっとかじっただけなものですから…またやってみてわからなければ、質問させていただきます。どうもありがとうございました。

投稿日時 - 2007-02-14 11:23:56

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

DateAddの引数に入れる値(順番)が違うのでは?
VB.NET2003の場合ですが、 dateAdd(DateInterval.Year , 10 , dt) の形式だと思うのですが。

投稿日時 - 2007-02-13 23:05:55

補足

すみません、型がどうこうのエラーはわたしが誕生日のフォームのところに数値をいれないまま実行ボタンを押していたため発生したものでした。こんなことに時間をとらせてしまって申し訳ありません。どうもありがとうございました!

投稿日時 - 2007-02-15 01:14:04

お礼

そうなんですか…一度、順序を変えてやってみます!どうもありがとうございます。

投稿日時 - 2007-02-14 11:29:10

あなたにオススメの質問