OS:win2000
Access 2000 を使用しています

Microsoft Accessにて…
テーブルのデータ型を「通貨型」で選択し、書式「通貨」で設定した項目を
エクセルにエクスポートすると小数点以下.00と表示されてしまします。

具体例として、「\20,000」と入力した項目が
エクセルにエクスポートすると「\20,000.00」と表示されるのです。

エクセル側の書式設定で修正すれば直るのですが、
めんどくさいのでアクセス側の設定で修正出来ないでしょうか?
「小数点以下表示桁数」とかもいじってみましたがダメでした…

ちなみにエクセルは「2000」を使用しています

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ACCESS側からエクスポートすると、各フィールドの書式を聞いてくるステップはなく、ユーザー側はどうしようもない。


確かに質問のようになる。
ーー
一方エクセル側から、データー外部データの取り込みーデータの取り込み
で取り込むと、下記のように、入力に近い形で取り込んだ。しかし通貨型の書式設定
は消えている。
所持金
1.2
10
13.23
21
ーーー
どちらにしても1手間かけないといけないが。
ーーー
参考
http://www.accessclub.jp/samplefile/samplefile_1 …

この回答への補足

…やはりエクセル側で修正する方が一番手っ取り早いみたいですね。

補足日時:2009/05/20 17:43
    • good
    • 0

Access2000 でどうかわからないのですが、以下で確認してみてください。



http://support.microsoft.com/default.aspx?scid=k …

※小数点以下桁数を増やす/減らすは、同じ操作だと思ったので

この回答への補足

早速試してみましたが、
[コントロール パネル] → [地域と言語のオプション] の
[数値] [通貨] 共に [小数点以下の桁数] の値を変更してみましたがダメでした…。

ちなみに、エスポート後のエクセルの「セルの書式設定」を見ると、
当該項目の表示形式が「ユーザー定義」になっていて、
種類は 「\#,##0.00;-\#,##0.00」となっていました。

補足日時:2009/05/19 12:37
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QAccessからExcelへエクスポート時に小数点以下の桁数がおかしく

AccessからExcelへエクスポート時に小数点以下の桁数がおかしくなります。

59.20
118.40
118.40
77.70
49.20
↓↓↓↓↓

59.20000076
118.4000015
118.4000015
77.69999695
49.20000076
の様になってしまいます。
以下エクスポート処理です。

StrSQL = "SELECT MaxSize FROM SizeTabel" ←本当はかなり長いSQL

Set QueryTemp = CurrentDb.CreateQueryDef("ExportSQL", StrSQL)
DoCmd.SelectObject acQuery, "ExportSQL", True
DoCmd.TransferSpreadsheet acExport, 8, "ExportSQL", Application.CurrentProject.Path & "\test.xls", False, ""
CurrentDb.QueryDefs.Delete ("ExportSQL")

Format関数で桁数を調整したりはしたのですが、精度が必要な為、原因を追究したいと考えています。
アドバイスよろしくお願いいたします。

AccessからExcelへエクスポート時に小数点以下の桁数がおかしくなります。

59.20
118.40
118.40
77.70
49.20
↓↓↓↓↓

59.20000076
118.4000015
118.4000015
77.69999695
49.20000076
の様になってしまいます。
以下エクスポート処理です。

StrSQL = "SELECT MaxSize FROM SizeTabel" ←本当はかなり長いSQL

Set QueryTemp = CurrentDb.CreateQueryDef("ExportSQL", StrSQL)
DoCmd.SelectObject acQuery, "ExportSQL", True
DoCmd.TransferSpreadsheet acExport, 8, "ExportSQL", Application.CurrentProject.Pat...続きを読む

Aベストアンサー

空のデータベースを1つ作り
テーブルの新規作成(デザインビュー)
で適当なテーブルを1つ作ります

KEY,フィールド名,データ型
■,id, オートナンバー
□,data, 数値型(単精度浮動小数点型、少数点以下桁数=15)

で、dataに以下を入力
59.20
118.40
118.40
77.70
49.20

その後、テーブルのデザインビューで
□,data,数値型を
倍制度浮動小数点 に変更してテーブルを見ると
data
59.2000007629395
118.400001525879
118.400001525879
77.6999969482422
49.2000007629395

これと同じ事が、EXCEL か ACCESS の
自分で修正できないような内部の処理のどこかで
行われています。

原因は、そういう事です

参考URL:http://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml

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進数...続きを読む

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessの桁区切りについて教えてください。

アクセスのレポートの金額に、桁区切りのカンマを付けたいと思っています。
プロパティの書式を通貨にすると¥マークがついてしまいます。
合計は付いてもいいのですが、内訳には¥マークを付かないように桁区切りだけにしたいのです。

そのため、書式に『###,##0』としました。
できましたが、小数点以下が表示されません。

小数点を表示したいので『###,##0.###』としたら、『59,180.000』となってしまいます。
小数点の指定を自動から3桁表示に変えましたが、うまくいきません。

教えていただきたい内容としては、
・金額の表示に桁区切りのカンマを付けたい。
・でも¥マークは付けたくない。
・小数点以下該当があるもののみ3桁まで表示させたいが(5,500.365)、
 小数点以下がないものは小数点以下は表示させたくない(5,400)。

ぜひともアクセスを使いこなしている方、お教えください。

Aベストアンサー

この内容からですと、[金額]フィールドを「レコードの内容により、書式を変えたい」と
いうことですので、テキストで処理する方法よりないかと思います。(Access2000)

VBAによる「ユーザー定義関数」を使う方法ですが、それで良かったら手順を
詳しく書きますので、テストしてみてください。

・テーブルのデザインで[金額]フィールドを「数値型」の「単精度浮動小数点型」か
 「倍精度浮動小数点型」にします。

・「モジュール」の新規作成で開いたコードウィンドウに下記コードをコピーして
 貼り付けます。

・フォームのレコードソースにするためのクエリを作成します。
 必要なフィールドをQBEグリッド(画面の下側)にドラッグした後、
 新規フィールドに 例えば、 金額Txt:Valtxt([金額]) と入力します。

・レポートの[金額]のコントロールソースに、この[金額T]を指定します。
 この書式で「配置」を右に設定します。

これで、少数部がない数値は、整数部だけを表示し、位取りの , が付きます。
小数部がある場合は、4位を四捨五入します。(通常と同じ)
その結果、右側に 0 が付いた場合は、表示しません。

ご承知の上とは思いますが、表形式の場合、少数点位置が揃わなくなりますので
見ずらくなってしまいます。

このようなもので如何でしょうか。

Function Valtxt(V As Double) As String
Dim T As String
Dim N As Integer
T = Format(V, "#,##0.000")
For N = Len(T) To InStr(T, ".") Step -1
  If Mid(T, N, 1) = "0" Then
    T = Left(T, N - 1)
  Else
    Exit For
  End If
Next N
If Right(T, 1) = "." Then T = Left(T, Len(T) - 1)
Valtxt = T
End Function

この内容からですと、[金額]フィールドを「レコードの内容により、書式を変えたい」と
いうことですので、テキストで処理する方法よりないかと思います。(Access2000)

VBAによる「ユーザー定義関数」を使う方法ですが、それで良かったら手順を
詳しく書きますので、テストしてみてください。

・テーブルのデザインで[金額]フィールドを「数値型」の「単精度浮動小数点型」か
 「倍精度浮動小数点型」にします。

・「モジュール」の新規作成で開いたコードウィンドウに下記コードをコピーして
 ...続きを読む

QACCESS側からEXCELの書式を設定するには?

ACCESSからEXCELにエクスポートした際、ACCESS側でEXCELの書式設定は行えますか?(例:セルAの幅がX桁等)

データ件数が多すぎて、下記VBでエクスポート処理をしています。

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

お手数ですが、ご教授願います。

Aベストアンサー

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
xlApp.Cells.EntireColumn.AutoFit
xlApp.Range("A1").Select
xlApp.Visible = False

xlApp.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

Exit_Cmd1_Click:
Exit Sub

Err_Cmd1_Click:
MsgBox Err.Description
Resume Exit_Cmd1_Click

End Sub

こんな感じで記述してください。

#1の中でxlApp.DisplayAlerts = False これは除いてください。保存しますかのメッセージが出ます。

例えばボタンにエクスポートの処理を書いているのでしたら
ボタンをCmd1とすると

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, ""

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("\XX.xls")
Set xlSheet = xlBook.Worksheets(1)

xlApp.Cells.Select
...続きを読む

QAccessで小数点以下を切り捨てたいんですが

今Accessでデータベースを扱っているんですが、小数点以下を切り捨てる方法を教えて欲しいのです。調べてみると、MicrosoftAccessプロジェクト(.adp)に適用可能な関数(floorなど)は見つかるんですが、私が今扱っているのはMDBファイルですので、適用できないようです。
ですから、MDBファイルにも使える切り捨ての方法があれば、ぜひ教えてください。よろしくお願いします。

Aベストアンサー

> もし解決策などありましたら、教えて頂けないでしょうか?
明示的に型を変換しましょう。
結果: CLng(Fix([A] / [B]))
のように。

QAccessの通貨

いつもお世話になっています。
Accessの通貨型について疑問があるので、どなたか教えてください!

通貨型にすると何かしら計算させたときに自動的に四捨五入になりますよね?
通貨型を使用して計算させると、電卓で計算させたときと金額が1円とか2円とか合わないことがあるんです。
これの対処法ってないんですか???

Aベストアンサー

>通貨型で表示されている小数点以下を四捨五入した値とは違うんですか???

フィールドを通貨型にして書式で小数点以下を表示しない
設定になっていれば 例えば
実際の計算は13円×1.05=13.65となりますが答
えの13.65円が通貨型のフィールドだと14円になりますよね。
これが例えば4つあった場合    通貨型の表示
13円×1.05=13.65円     14円
13円×1.05=13.65円     14円
13円×1.05=13.65円     14円
13円×1.05=13.65円     14円
ーーーーーーーーーーーーーー ーーーーーーー
     合計  54.60円  合計 55円
14円が4つで56円にならなくてはいけないのに実際の計算された値の四捨五入の金額55円になってしまいます。
通貨型で小数点以下があった場合、表示上(見た目)だけ
四捨五入されているだけで実際は小数点以下の数値が生き
ている状態です。
関数などを使用して13円×1.05=14円と計算し値を
出してその答えを合計すれば56円になる。と言う事です。1レコードづつ小数点以下を四捨五入して整数の値として持たないとそのままでは誤差が出てしまいます。

>通貨型で表示されている小数点以下を四捨五入した値とは違うんですか???

フィールドを通貨型にして書式で小数点以下を表示しない
設定になっていれば 例えば
実際の計算は13円×1.05=13.65となりますが答
えの13.65円が通貨型のフィールドだと14円になりますよね。
これが例えば4つあった場合    通貨型の表示
13円×1.05=13.65円     14円
13円×1.05=13.65円     14円
13円×1.05=13.65円     14円
13円×1.05=13....続きを読む

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

QAccessのフォーム上にレコード数とレコード番号の表示

Accessでクエリを元に表示するフォーム上で、テキストボックス等に関数を使って、レコード数とレコード番号を表示する方法がありましたら教えてください。

フォームの書式設定で「移動ボタン」の表示をすれば目的の事は出来るのですが、表示の大きさが調整できない為、とても見難いのです。

以上よろしくお願いします。

Aベストアンサー

レコード番号のコントロールソースを
=[CurrentRecord]
レコード数のコントロールソースを
=Count("*")-[NewRecord]
としてみてください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報