• ベストアンサー

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

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などの数字を足すことができないのだろうと思うんですが…それであっていますでしょうか。だとしたら、型を一致させたいんですがどうしたらいいでしょうか? ものすごく醜い感じになってしまっていると思います…すみませんが、 よろしくお願いします。

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

  • ベストアンサー
  • ducati
  • ベストアンサー率29% (308/1062)
回答No.2

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 でいいんじゃないですか?

analogy
質問者

お礼

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

analogy
質問者

補足

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

その他の回答 (1)

  • tocci_pc
  • ベストアンサー率14% (19/130)
回答No.1

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

analogy
質問者

お礼

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

analogy
質問者

補足

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

関連するQ&A