- 締切済み
数値が正常に表示されない
アクセスの演算フィールドで計算させたあとのクエリをaspで表示させていますが、たとえば 1460→30 562→30 896→30 などのように変に表示されてしまいます。 1460などの数字は、演算フィールドでiifなどを使って計算しています。Cintなどを使ってみましたが同じでした。 ちんぷんかんぷんの状態です。 演算フィールドで計算していないフィードの数値は正常に表示されます。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- temtecomai2
- ベストアンサー率61% (656/1071)
VBScript は大丈夫っぽいんで、Access の中で定義しているクエリたちが怪しいですね。 ちなみに、、、 > SELECT 市町村最終請求額 from mytable ホントにこれを Access の中で開いてもちゃんと期待した結果が得られるんですか? それとちょっとツッコミを。 > >B) エラーになってしまう、実際に格納されている値 > テーブルをアクセスで開いた時に見える値は > 57330 > 83790 > 39690 > 61740 > 61740 > (略) > >D) (B) の値をブラウザに書き出す時の「期待する値」 > (B)と同じです。 (B) はテーブルに入っている生の値ですから、それがそのまま出力されるのを期待するってのは間違いですよね? テーブルに入っている生のデータではなくて「クエリの計算列で加工された結果」が期待される出力結果ですよね、、、
- temtecomai2
- ベストアンサー率61% (656/1071)
> D) ASP でブラウザに表示した結果 > ↑ここで正しく表示されない。だいたいは正しい。演算フィールドで計算やif文を使っている一部のフィールドのみ正しくないようです。 VBScript でクエリを実行している部分~ ブラウザに書き出す部分のコードを出してもらえますか? 案外、HTML デザインをするためなどの理由で初期の頃に使っていたコードが残っちゃってる場合もありますし。(オイラだけかも) そして、 A) テーブルに実装されているその列の型 B) エラーになってしまう、実際に格納されている値 C) 計算フィールドでの計算式 D) (B) の値をブラウザに書き出す時の「期待する値」 E) 実際にブラウザに表示されてしまう値 なんかも教えてください。
補足
コードは下記です。 <% dim DB,SR,SR2,cn,rs,costring,sSQL,field DB = "マスター.mdb" SR = "SELECT 市町村最終請求額 from mytable" set cn = server.createobject("ADODB.Connection") costring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(DB) cn.Open costring sSQL = (SR & SR2) set rs = cn.execute(SR & SR2) If rs.EOF Then %> なし <% Else %> <table> <tr> <% for each field in RS.Fields %> <td><P ALIGN="CENTER"><%=field.Name%></td> <% next %> </tr> <% Do While Not rs.EOF %> <tr> <% for each field in RS.Fields %> <td> <%=field.Value%></td> <% next %> </tr> <% rs.MoveNext Loop %> </table> <% End if %> >A) テーブルに実装されているその列の型 素人なので、その意味がわかりません。 (^^; クロス集計などしたものなどクエリのクエリ・・などを集計しています。もともとは数値ですが・・。例 利用日数をクロス集計。(count)演算フィードで利用人数に単価をかけ、さらにそれを足したり引いたり・・。 >B) エラーになってしまう、実際に格納されている値 テーブルをアクセスで開いた時に見える値は 57330 83790 39690 61740 61740 66150 39690 70560 30870 79380 >C) 計算フィールドでの計算式 市町村最終請求額: CInt(IIf([社福軽減額]=0,[総費用]-[利用者負担],[総費用]-[軽減後利用者負担]-[社福軽減額])) >D) (B) の値をブラウザに書き出す時の「期待する値」 (B)と同じです。 E) 実際にブラウザに表示されてしまう値 4410 4410 4410 4410 4410 4410 4410 4410 4410 4410
- temtecomai2
- ベストアンサー率61% (656/1071)
ASP じゃなくて、Access のクエリで使用している演算フィールドの結果についての質問になるでしょうかね。 どこまでは正しく出力されているのでしょうか? A) テーブルを生で開いた状態 B) 演算フィールドで出力している選択クエリ C) (B) をソースに使ってラップした選択クエリ(質問文にある「クエリ」) D) ASP でブラウザに表示した結果
補足
>A) テーブルを生で開いた状態 ↑正しく表示される。 B) 演算フィールドで出力している選択クエリ ↑正しく表示される。 C) (B) をソースに使ってラップした選択クエリ(質問文にある「クエリ」) ↑正しく表示される。 D) ASP でブラウザに表示した結果 ↑ここで正しく表示されない。だいたいは正しい。演算フィールドで計算やif文を使っている一部のフィールドのみ正しくないようです。
- STICKY2006
- ベストアンサー率29% (1536/5269)
こんちくは。 >>aspで表示させています 表示させているだけ。ならASPが原因でなく、Accessの方が原因では? 演算フィールド。をしっかり確認してみましたか? ・原因がアクセスなのかASPなのか切り分ける。 ・切り分けたら、さらにその中で切り分け、どこの処理を行ったら数値が変わっているのか。を判断する。 とりあえず、情報が少ないので、これぐらいしか言えないです。
補足
>ホントにこれを Access の中で開いてもちゃんと期待した結果が得られるんですか? Access では期待したように表示されます。 SQLビューにSELECT 市町村最終請求額 from mytableと入れると表示されます。 >(B) はテーブルに入っている生の値ですから、それがそのまま出力されるのを期待するってのは間違いですよね? 訂正します。間違いです。 (B)は複数で、AテーブルとBテーブル、Cテーブル、Dクエリ、Eクエリなどです。 それを(C)のクエリで、リレーションを組んでいます。そして、演算クエリで計算させています。 たとえば Aテーブル「利用日数」×Dクエリ「単価」 を[総費用]とし、それを元に、最初に提示した計算式で計算しています。