質問: access⇒エクセルへのエクスポートについて accessからエクセルへのエクスポートで質問です。 accessのテーブルの中の一つのフィールド(名前は[合計])で、=[単価]*[数量]という計算をさせたとします。 このテーブルをエクセルにエクスポートし、エクセル上で例えば [単価]の累積合計 =sum(**:**) [数量]の累積合計 =sum(**:**) [合計]の累積合計 =sum(**:**) をしたとすると、[単価]と[数量]は値が得られるのですが、accessで計算させた[合計]は0になって値を得ることができません。 [単価]と[合計]は通貨型、[数量]は数値型に設定しています。 accessのテーブル上では[単価]と[合計]には¥マークがついているのですが、エクセルにエクスポートすると、[単価]は¥マークがついておらず、[合計]には¥マークがついています。 accessで計算させたフィールドは、エクセルにエクスポートした場合、数字として認識されないのでしょうか?文字になってる? うまく説明出来なくてすみませんが、accessをエクスポートし、エクセルで加工計算を色々したいのですが、[合計]が計算出来なくて困っているという事です。 何故なのか全く判らないので教えてください。
回答: 【解決策】 「=[単価]*[数量]」の演算を、クエリで行わせるようにして下さい。 【説明】 > accessのテーブルの中の一つのフィールド(名前は[合計])で、 > =[単価]*[数量]という計算をさせたとします。 accessのテーブルでは、「=[単価]*[数量]」といった計算を行わせる ことはできません。 これが、テーブルと同様の表示になる『フォームのデータシートビュー』 についてのお話であれば、こちらの環境(windowsxp/access2003)で 現象の再現が確認できました。 どうやら、フォームのテキストボックスなどでの演算結果は、excelへの 出力後はテキスト(文字列)扱いになってしまうようです。 一方、フォームのレコードソースにクエリを使用し、「=[単価]*[数量]」の 演算をそちらで行わせ、フォームではその結果を表示させる形にすると、 excel出力後も数値として扱われました。 ですので、現在のフォームに使用しているテーブルを基にクエリを作成し、 そこで添付画像のような『合計』という演算フィールドを追加して、 フォームの『合計』テキストボックスのコントロールソースにこのフィールドを 指定してやれば、excel出力後も合計が計算できるようにできます。 ※演算フィールドでは、先頭の「=」は無用です。 (「=[単価]*[数量]」ではなく、「合計: [単価]*[数量]」と指定) *演算結果を「合計」という名前で表示させる場合。 (「:」の左側が名前、右側が求める結果を出すための式) *「単価」「数量」というフィールド名が、クエリで使用しているテーブルの 複数で該当する場合は、「=[テーブル1].[単価]*[テーブル2].[数量]」 のように指定します。(「.」の存在に注意) ※フォームのレコードソースは、フォームのプロパティシートの『データ』 タブで指定できます。 ※テキストボックスのコントロールソースは、フォームのデザインビューで テキストボックスに直接入力して指定することもできます。