出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

文字を数値へ変更したい。   たすけさん [2003/06/24 8:37:17] [3445]
  Re:文字を数値へ変更したい。   暇人さん [2003/06/24 12:42:58] [3446]
    Re:文字を数値へ変更したい。   たすけさん [2003/06/24 13:35:29] [3447]
      Re:文字を数値へ変更したい。   暇人さん [2003/06/24 16:45:46] [3448]
        CLngを使用し表示することが出来ました。   たすけさん [2003/06/25 12:15:52] [3450]

[3445] 文字を数値へ変更したい。
投稿者:たすけさん 2003/06/24 8:37:17
Response.Write "<td>" & ObjRS("年数") & "</td>"
って感じで年数を表示しております。

ここの年数には西暦で(例えば)1990と文字で入力さ
れています。
S = Year(date)
eval(S)
として現在の年数を数値に変更し
T = ObjRS("年数")
eval(S)-eval(T)=13と計算させて
13と本当は表示させたいのですが上手くいきません。

T = ObjRS("年数")が上手くいっていないようなのです。
この一文が上手くいくような方法があれば教えてください。

お忙しいところ誠に申し訳ございませんが、アドバイスよろしくお願い致します。

[3446] Re:文字を数値へ変更したい。
投稿者:暇人さん 2003/06/24 12:42:58
> Response.Write "<td>" & ObjRS("年数") & "</td>"
> って感じで年数を表示しております。
>
> ここの年数には西暦で(例えば)1990と文字で入力さ
> れています。
> S = Year(date)
> eval(S)
> として現在の年数を数値に変更し
> T = ObjRS("年数")
> eval(S)-eval(T)=13と計算させて
> 13と本当は表示させたいのですが上手くいきません。
>
> T = ObjRS("年数")が上手くいっていないようなのです。
> この一文が上手くいくような方法があれば教えてください。
>
> お忙しいところ誠に申し訳ございませんが、アドバイスよろしくお願い致します。
>
objRSというのはレコードセットオブジェクトですか?
DBは何を使ってるのでしょうか?
接続方法はなにですか?ODBC?OLEDB?
ADOですか?DAOですか?

T=objRS("年数") が本当に美味くいってないのならこのあたりの情報がないと何とも答えようがないと思いますけど

このソースはサーバー側、クライアント側どちらのスクリプトですか?
スクリプトはJScript?
お手数かけてすみませんがもう少し具体的に説明していただけないでしょうか

[3447] Re:文字を数値へ変更したい。
投稿者:たすけさん 2003/06/24 13:35:29

回答ありがとうございました。
知識不足で下記のようにしかお答えできないのです。

'=================================================
'----- DB接続
'=================================================
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
"DBQ=" & Server.Mappath("master.mdb")

上記のように接続しています。
ソースはサーバ側になります。

> スクリプトはJScript?
特に宣言していないんです・・・。

見よう見真似で作っているのでこれぐらいしか答えられないんです。

[3448] Re:文字を数値へ変更したい。
投稿者:暇人さん 2003/06/24 16:45:46
VBScriptであるように思えますのでそう仮定して考えてみました

On Error Resume Next ステートメントがあれば外してください

まずフィールド名 年数 は存在しますか?間違って他のテーブルを
見に行ってませんか?

SQL文は正しいですか?AccessのSQLビューで実行して、正しく 年数
フィールドが取れますでしょうか

フィールド 年数 は数値ですか?テキスト型になっていませんか?
+は文字連結演算子でもありますので、テキスト型同士ですとただしく加算されません
eval関数ではなくCLng関数を推奨します
というかVBScriptではeval関数はあまり使い出がないです
Dim V
V = CLng(S) - CLng(T)
Response.Write V
もしくはそのまま
Response.Write (CLng(S) - CLng(T))
この行でエラーが起きるときは、数値に変換できないテキストが
SかTに入っているので。
Response.Write "S:" & S & " T:" & T
とでも変わりに書き込んで、表示を見てみてください

[3450] CLngを使用し表示することが出来ました。
投稿者:たすけさん 2003/06/25 12:15:52

ありがとうございました。

暇人さん、本当にありがとうございました。



TreeBBS For ASP V.0.1.3
Program By YasNet