ACCESS2000で小数点以下を表示したい
検診データのうちある異常値の数値だけを表示したいのです.
しかもその数値が例えば6.0だったら小数点1桁まで表示したいのです.
クエリでIIF関数を使って空白にするか表示するかを設定すると
その数値のデータ型が数値型とならずプロパティの書式を0.0としても
効きません.
データ作成クエリとしてテーブルに書き出して、レポートのソースを
そのテーブルにしてみたのですが、その時点での数値がテキスト型
となってしまい、その都度数値型に変更しなければならず、汎用性が
ありません.テーブル作成クエリで作成するテーブルのデータ型をあらかじめ
設定する方法はないでしょうか?
それとも他によい方法はないでしょうか?
あいにくVBAレベルになると知識がなくさっぱりわかりません。

A 回答 (1件)

IIf([a]=異常値,Format$([a],"#,##0.0"),"")とすれば異常値のときは少数点第一位までを返し、それ以外であれば空文字列を返します。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qクエリで日付型のIIF関数の使用

テーブル1にフィールド名→日付、データ型→日付/時刻型(主キーなし)
を作成し、
クエリ1を作成し、フィールド1にテーブル1の日付フィールドをドラッグし、
フィールド2には「有無: IIf([日付]="","未",[日付])」
を入力しました。
「日付フィールドが空白なら有無フィールドは「未」、入力されているならその日付を表示する」
としたいです。

しかし画像のように
日付フィールドが空白→有無フィールドも空白
日付フィールドに日付が入っているなら→有無フィールドは#エラー
になってしまいます。

何がだめなんでしょうか?
よろしくお願い致します。

Aベストアンサー

>何がだめなんでしょうか?
日付/時刻型のデータは文字列型ではないので""と比較する事は出来ません。

なので、データが入っているレコードでは「型が違うから比較出来ない」のでエラーになり「#error」が表示されます。

そして、データが入っていないレコードでは、型の違いによるエラーにはなりませんが「NULL値と""は等しくない」と判断され「日付、つまり、NULL」が表示されます。

「長さ0の文字列」と「NULL値」は「異なる値」だと言う事を忘れてはいけません。

つまり
>日付フィールドが空白→有無フィールドも空白
>日付フィールドに日付が入っているなら→有無フィールドは#エラー
になる訳です。

これは「意図した動作ではないが、仕様通りの動作」なので
有無: IIf([日付]="","未",[日付])
と言う式を書いた場合には、上記の動作は正常な動作です。

質問者さんが意図した通りに動作させるにはIsNull関数を用い
有無: IIf(IsNull([日付]),"未",[日付])
として下さい。

Qaccessのクエリの式ビルダで、べき乗計算させるときに、その都度切捨てできる方法はありますか。

accessのクエリの式ビルダを使ってべき乗計算させたいのですが、その際、その都度切捨てをしたいのですが、難しいでしょうか。
具体的にいうと、
XにYをN-1乗させる場合、「X*Y^(N-1)」となりますが、
ここで、Yを1回かけるごとに小数点以下切捨てたいので
1回目はint(X*Y)とかけます。
その次からはint(int(X*Y)*Y)とかけますが、
なにぶんN-1をかけて求めたいため、
どのように式を組んでよいかわかりません。
よい方法があれば教えてください。
よろしくお願いします。

Aベストアンサー

テーブルの情報が欲しかったんですけどね
テーブルは下のようなものと仮定します
「??T](取得価格、現価率、年数)

評価額=3000*(1-0.206/2)
は2691じゃなくて2607だよね

それでよければ下のようなユーザー関数を作り
クエリで
評価額:Hyoukagaku(取得価格,原価率,年数)
のように使います

Public Function Hyoukagaku(b, c, d)
Dim I As Integer, c2 As Single, b2 As Long
b2 = b

For I = 1 To d
If I = 1 Then
c2 = c / 2
Else
c2 = c
End If

b2 = Int(b2 * (1 - c2))
Next

Hyoukagaku = b2
End Function

テーブルの情報が欲しかったんですけどね
テーブルは下のようなものと仮定します
「??T](取得価格、現価率、年数)

評価額=3000*(1-0.206/2)
は2691じゃなくて2607だよね

それでよければ下のようなユーザー関数を作り
クエリで
評価額:Hyoukagaku(取得価格,原価率,年数)
のように使います

Public Function Hyoukagaku(b, c, d)
Dim I As Integer, c2 As Single, b2 As Long
b2 = b

For I = 1 To d
If I = 1 Then
c2 = c / 2
Else
...続きを読む

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

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

Aベストアンサー

はい。Choose28だったかな?
IIf Switch
は14だったと思います。

Q【Access】レポートで数値型データが時刻型?で表示される

作業環境
・WindowsXP
・Access2007

よろしくお願いします。

クエリをレコードソースにしたレポートを作成した時、一つの数値型フィールドが時刻型?(0:00:00)で表示されてしまいます。

【材料コード】という数値型フィールドなのですが、このフィールドのみ正常に表示されません。
他の数値型フィールド(金額、数量etc)は正常に表示されています。
新規にテキストボックスを作っても、(0:00:00)と表示されます。
レポート表示前に、パラメータとして材料コードを指定しますが、クエリの段階では正しく材料コードが取得できています。
問題のフィールドの書式や規定値へ特殊な設定をしていない事は確認済です。

他のテキストボックスとコントロールソースを交換するという方法も考えましたが、
例)【工場コード】テキストボックスのコントロールソースを【材料コード】とし、
【材料コード】テキストボックスのコントロールソースを【工場コード】とする

上記の場合だと、材料コードが正常に表示されて、工場コードが(0:00:00)と表示されてしまいます。


何か原因として考えられる事はないでしょうか。

作業環境
・WindowsXP
・Access2007

よろしくお願いします。

クエリをレコードソースにしたレポートを作成した時、一つの数値型フィールドが時刻型?(0:00:00)で表示されてしまいます。

【材料コード】という数値型フィールドなのですが、このフィールドのみ正常に表示されません。
他の数値型フィールド(金額、数量etc)は正常に表示されています。
新規にテキストボックスを作っても、(0:00:00)と表示されます。
レポート表示前に、パラメータとして材料コードを指定しますが、クエリの段階...続きを読む

Aベストアンサー

入れ替えても そのテキストボックスの表示がおかしいとなると
>問題のフィールドの書式や規定値へ特殊な設定をしていない事は確認済です。
これは、テーブルのことですよね?
実際のレポートのテキストボックスに書式が入っているのではないですかね
そうであれば、入れ替えた時の状態にも一致します。

Qアクセスのデータ型。数値型についてお聞きしたいのですが・・・

アクセスのデータ型。「数値型」ですが、「フィールドサイズ」に

(1)バイト型(0~255の範囲。小数点以下の数値は扱えない)
(2)整数型(-32,768~32,767の範囲。小数点以下は扱えない)
(3)長整数型(-2,147,483,648~2,147,483,647の範囲。小数点以下は扱えない)
(4)単精度浮動小数点型(-3.402823×10^38~3.402823×10^38の範囲。
            小数点以下の数値が扱える)
(5)倍精度浮動小数点型(-1.79769313486231×10^308~-1.79769313486231×
           10^308の範囲。少数点以下の数値が扱える)
(6)十進型(-10^28-1~10^28-1の範囲。小数点以下の数値が扱える)

と6種類決められますが、それぞれの「選び方の違い」と「その理由」を
教えてください。

たとえば、(1)~(3)くらいなら分かります。
扱える数値の桁数が違うということですよね?で、(1)~(3)を選ぶ時と(4)~(6)を
選ぶときで大きな違いというと、「小数点以下の数値が扱えるかどうか」
ですよね?そういう認識であっているか・・・ということと、上記の(1)~(6)を
「選び分ける必要がある場合」というのを教えてください。

なぜ、このような6種類に分かれているのか、人に説明しないとなりません。

よろしくお願い致します。m(_ _)m

アクセスのデータ型。「数値型」ですが、「フィールドサイズ」に

(1)バイト型(0~255の範囲。小数点以下の数値は扱えない)
(2)整数型(-32,768~32,767の範囲。小数点以下は扱えない)
(3)長整数型(-2,147,483,648~2,147,483,647の範囲。小数点以下は扱えない)
(4)単精度浮動小数点型(-3.402823×10^38~3.402823×10^38の範囲。
            小数点以下の数値が扱える)
(5)倍精度浮動小数点型(-1.79769313486231×10^308~-1.79769313486231×
           10^308の範囲。少...続きを読む

Aベストアンサー

整数型と浮動小数点型の大きな違いは、少数点以下の数字を扱えるかどうかで合っていると思います。
補足すると、浮動小数点型の方が整数型より大きい数字が扱えます。
長整数型なら21億くらいまでしか扱えませんが、浮動小数点型なら、兆、京・・・と非常に大きい数字が扱えるようになります。
有効数字として、どのくらいのケタを保持できるかが、精度になります。
倍精度は単精度の倍の精度です(当たり前ですが)

コンピュータが2進数で数字を表現していることはご存知のことだと思いますが、2進数で少数を表す場合、必ずしも10進数の少数と一対一に対応するわけではありません。2進数を10進数に直すのはnビットめの数字(0,1)*2のn乗の和ですが、少数の場合は-n乗になります。つまり1/2+1/4+1/8っていうような感じになります。0.75だったら、1/2+1/4で表現できますが、0.3とかになると1/4+1/32+・・・という感じできっちり表現しきれないので、0.299・・・という近似値になります。

それで問題があるようでしたら、十進型を使えば?ってことだと思います。

整数型と浮動小数点型の大きな違いは、少数点以下の数字を扱えるかどうかで合っていると思います。
補足すると、浮動小数点型の方が整数型より大きい数字が扱えます。
長整数型なら21億くらいまでしか扱えませんが、浮動小数点型なら、兆、京・・・と非常に大きい数字が扱えるようになります。
有効数字として、どのくらいのケタを保持できるかが、精度になります。
倍精度は単精度の倍の精度です(当たり前ですが)

コンピュータが2進数で数字を表現していることはご存知のことだと思いますが、2進数...続きを読む


人気Q&Aランキング

おすすめ情報