• 締切済み

数値が正常に表示されない

アクセスの演算フィールドで計算させたあとのクエリをaspで表示させていますが、たとえば 1460→30 562→30 896→30 などのように変に表示されてしまいます。 1460などの数字は、演算フィールドでiifなどを使って計算しています。Cintなどを使ってみましたが同じでした。 ちんぷんかんぷんの状態です。 演算フィールドで計算していないフィードの数値は正常に表示されます。

みんなの回答

回答No.4

VBScript は大丈夫っぽいんで、Access の中で定義しているクエリたちが怪しいですね。 ちなみに、、、 > SELECT 市町村最終請求額 from mytable ホントにこれを Access の中で開いてもちゃんと期待した結果が得られるんですか? それとちょっとツッコミを。 > >B) エラーになってしまう、実際に格納されている値 > テーブルをアクセスで開いた時に見える値は > 57330 > 83790 > 39690 > 61740 > 61740 > (略) > >D) (B) の値をブラウザに書き出す時の「期待する値」 > (B)と同じです。 (B) はテーブルに入っている生の値ですから、それがそのまま出力されるのを期待するってのは間違いですよね? テーブルに入っている生のデータではなくて「クエリの計算列で加工された結果」が期待される出力結果ですよね、、、

nakada789
質問者

補足

>ホントにこれを Access の中で開いてもちゃんと期待した結果が得られるんですか? Access では期待したように表示されます。 SQLビューにSELECT 市町村最終請求額 from mytableと入れると表示されます。 >(B) はテーブルに入っている生の値ですから、それがそのまま出力されるのを期待するってのは間違いですよね? 訂正します。間違いです。 (B)は複数で、AテーブルとBテーブル、Cテーブル、Dクエリ、Eクエリなどです。 それを(C)のクエリで、リレーションを組んでいます。そして、演算クエリで計算させています。 たとえば Aテーブル「利用日数」×Dクエリ「単価」 を[総費用]とし、それを元に、最初に提示した計算式で計算しています。

回答No.3

> D) ASP でブラウザに表示した結果 > ↑ここで正しく表示されない。だいたいは正しい。演算フィールドで計算やif文を使っている一部のフィールドのみ正しくないようです。 VBScript でクエリを実行している部分~ ブラウザに書き出す部分のコードを出してもらえますか? 案外、HTML デザインをするためなどの理由で初期の頃に使っていたコードが残っちゃってる場合もありますし。(オイラだけかも) そして、 A) テーブルに実装されているその列の型 B) エラーになってしまう、実際に格納されている値 C) 計算フィールドでの計算式 D) (B) の値をブラウザに書き出す時の「期待する値」 E) 実際にブラウザに表示されてしまう値 なんかも教えてください。

nakada789
質問者

補足

コードは下記です。 <% 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

回答No.2

ASP じゃなくて、Access のクエリで使用している演算フィールドの結果についての質問になるでしょうかね。 どこまでは正しく出力されているのでしょうか? A) テーブルを生で開いた状態 B) 演算フィールドで出力している選択クエリ C) (B) をソースに使ってラップした選択クエリ(質問文にある「クエリ」) D) ASP でブラウザに表示した結果

nakada789
質問者

補足

>A) テーブルを生で開いた状態 ↑正しく表示される。 B) 演算フィールドで出力している選択クエリ ↑正しく表示される。 C) (B) をソースに使ってラップした選択クエリ(質問文にある「クエリ」) ↑正しく表示される。 D) ASP でブラウザに表示した結果 ↑ここで正しく表示されない。だいたいは正しい。演算フィールドで計算やif文を使っている一部のフィールドのみ正しくないようです。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちくは。 >>aspで表示させています 表示させているだけ。ならASPが原因でなく、Accessの方が原因では? 演算フィールド。をしっかり確認してみましたか? ・原因がアクセスなのかASPなのか切り分ける。 ・切り分けたら、さらにその中で切り分け、どこの処理を行ったら数値が変わっているのか。を判断する。 とりあえず、情報が少ないので、これぐらいしか言えないです。

関連するQ&A

  • ACCESS クエリの表示で

    ACCESS2003を使用している超初心者です。 テキストにそって、クエリで演算フィールド作成してますが、 そこに金額*0.05で消費税フールドを追加しました。 表示が数字のみなので、\マークや,をつけたいのですが、 クエリのデザイングリッド画面ではできませんか? よろしくおねがいします。

  • クエリーであるフィールドの値が空欄の時には空欄を表示したい時の方法

    選択クエリーにて売上高フィールドと土日祝フィールドがあります。 いま、新しく「計算用」フィールドをもうけました。 これには、売上高フィールドにデータが入っていて、かつ、土日祝フィールドの数値が1ときには1を、そうじゃない時には2を、そして、売上高フィールドに数値が入ってないときには空欄を表示したいと思います。 これを、 計算用: IIf(Len([売上高])>=1,IIf([土日祝]=1,1,2),"") と記述したら、プロパティにて、書式がブランクで表示され、これにより、フォームなどにもいろんなところに影響が出てしまいました。 単純に、売上高フィールドが空欄ならばという表現を記述したかったのですが、「空欄」という記述方法が分からなかったのでこのような方法をとりました。 しかしながら、結果として、こんなおかしな現象が生じてしまいました。 どなたか解決方法をお願いいたします。

  • access フィールドの数値を使って計算したい

    あるテーブル内に様々な数値をフィールドに入力して、それらの数値をフォームでルックアップを使用して計算したいのですが、accessはどうやら主キー(id)の数値(1、2、3…)を使って計算してしまいます。どのように設定すればよいのでしょうか。 テーブル1 id  フィールド1 1    5 2    10 3    15 4    20 フィールド1の数値をフォームにてルックアップで選んで計算したい(クエリ内の計算式に組み込みたい)。 よろしくお願いいたします。 access2010使用

  • ピボットテーブルの「ここにデータアイテム」の数値が正常に表示されない

    Excel2000で1つのシートからピボットテーブルを使い表を作ってます。 A項目B項目を「行と列のフィールド」に入れCという数字項目を「ここにデータアイテムをドラッグします」へ入れたのですが、数字が全て1になってしまいます。 本来は小数点3桁の数値なのですが、全て整数の1になってしまい正常な値が表示されません。 どうすれば正常な数値が表示されるのでしょうか? よければお力お貸しください

  • 演算フィールドが、パラメータクエリになってしまうのはなぜ?

    アクセス2003を使っているのですが、演算フィールドを作るために、フィールド名に[]を使うと、パラメータクエリとして動作してしまうのですがなぜでしょうか? 同じように作り直すと、正常に、演算フィールドとして、動作するのですが、パラメータクエリと演算フィールドの式は、同じ[]を使いますが、どこが違うと、どっちになるのでしょうか? 今は、作ってみないと、どっちになるかわかりません。

  • アクセスで数値型の和暦表記を西暦表示にする方法

    データ型が数値型のフィールドに、例えば令和3年7月14日を表す 30714 という数値が入っています。 これを 2021/07/14 とクエリで表示させるにはどのようにしたらよいでしょうか。 20180000を足すなど、何かの数字を用意して処理するのではなく formatやDateSerialなど関数で解決したいと思っています。 よろしくお願いいたします。

  • Accessで値がnullの場合は計算せずにnullをかえす方法

    Accessについて、教えてください。 クエリで抽出しているときに、フィールド1とフィールド2の数値を掛け算した値をフィールド3に表示したいと思っています。(小数点1位まで表示) フィールド1とフィールド2は値がnullの場合もありますが、この場合は「0」として扱うのではなく、そのまま計算結果もnullにしたいと思っています。 最初は単純に フィールド3: ROUNDMS2(ROUNDMS([フィールド1],1)*ROUNDMS([フィールド2],1),1) とクエリに表記したのですが、この場合「フィールド1」や「フィールド2」がnullの場合は#ERRORが表示されました。 次に、IFでフィールド1やフィールド2がnullの場合は計算せずにnullをかえしてもらおうと下記のような文をつくりました。 フィールド3: IIf([フィールド1]=Null,Null,IIf([フィールド2]=Null,Null,ROUNDMS2(ROUNDMS([フィールド1],1)*ROUNDMS([フィールド2],1),1))) これでもやっぱり#ERRORが表示されます。 いろいろと検索したのですが、nullを0として扱う例は多数見つけられましたがnullのまま扱う例が見つけられませんでした。 勘違いしているところがあるかもしれませんが、アドバイスよろしくお願いいたします。

  • ACCESS クエリ 正数のみ演算の対象としたい

    ACCESS2003で作業中です。 選択クエリの数値で「正数」のみ演算の対象としたいのですが、上手くいきません。 クエリのデータシートビューは現在以下の状態です。 (合計フィールドは演算で  合計:[ポイント1]+[ポイント2]+[ポイント3] と単純に足しているだけです。) NO 氏名 ポイント1 ポイント2 ポイント3  合計 1  田中  10    20     -5        25 2  鈴木  20    -10     10        20 これを「正数」のみの合計で以下のように表示をしたいと考えています。 マイナスの数値は計算に含まれないように、何等かの設定をしたいと考えています。 NO 氏名 ポイント1 ポイント2 ポイント3  合計 1  田中  10    20     -5      30 2  鈴木  20    -10     10       30 最終的にはこれをフォームで表示しようと思っています。 クエリ元テーブルの各ポイント1~3のフィールドのデータ型は数値型で、フィールドサイズは倍精度浮動小数点型です。 何かよい方法があれば、是非教えて下さい。よろしくお願い致します。

  • ACCESSの計算式を入れると%表示ができなくなります。

    お忙しいところ恐れ入りますが教えて下さい。 ACCESSのクエリ上で計算をしフォームに表示させているのですが、関数を使ったところ、%表示が出来なくなりました。 プロシージャーなどは使っていません。 いままでは、 クエリのデザイン画面で、 フィールド欄に  買上率:[個数]/[試食数] といれ、プロパティでパーセンテージの表示設定をし正しく表示されていましたが、 0値が入っていると、#Errorが表示されるため、これを消すために、以下の式に変更しました。 買上率: IIf([個数]=0,"",IIf([試食数]=0,"",[個数]/[試食数])) 上記のように入れたところ、%表示及び小数点以下の表示桁数を設定できなくなりました。いい方法を教えて下さい。

  • クエリの一つのフィールドのIIF関数の限界は14個ですか?

    アクセス2003のクエリで たくさんの条件があり IIf(テーブル名!フィールド名,"正",IIf(・・・ と言う風に、IIF関数を14個までなら正常に動くのですが 15目になると「式が複雑すぎます」となってしまいます。 IIF関数の限界は14個なのでしょうか?

専門家に質問してみよう