- ベストアンサー
「型が一致しません」のエラーが出るのですが
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などの数字を足すことができないのだろうと思うんですが…それであっていますでしょうか。だとしたら、型を一致させたいんですがどうしたらいいでしょうか? ものすごく醜い感じになってしまっていると思います…すみませんが、 よろしくお願いします。
- みんなの回答 (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 でいいんじゃないですか?
その他の回答 (1)
- tocci_pc
- ベストアンサー率14% (19/130)
DateAddの引数に入れる値(順番)が違うのでは? VB.NET2003の場合ですが、 dateAdd(DateInterval.Year , 10 , dt) の形式だと思うのですが。
お礼
そうなんですか…一度、順序を変えてやってみます!どうもありがとうございます。
補足
すみません、型がどうこうのエラーはわたしが誕生日のフォームのところに数値をいれないまま実行ボタンを押していたため発生したものでした。こんなことに時間をとらせてしまって申し訳ありません。どうもありがとうございました!
お礼
あ、そうか…"yyyy"の部分だけ算出されるわけじゃないのですね。 CInt(YEAR)というのは初めて聞きました。授業でちょっとかじっただけなものですから…またやってみてわからなければ、質問させていただきます。どうもありがとうございました。
補足
型が~のエラーはわたしが誕生日のフォームで数値をいれないまま実行ボタンを押していたため発生したものでした。こんなことに時間をとらせてしまって申し訳ありません。どうもありがとうございました!