アプリ版:「スタンプのみでお礼する」機能のリリースについて

 こんばんは。また質問させてもらいます・・。
これがアクセスに関して、最後の質問になるようにしたいです!!

 さて、フォームに入力したものは自動的にテーブルに保存されます。
しかし、フォーム上で計算したものは、テーブルに反映されていませんでした。
過去の質問にフォーム上計算したものは、テーブルに反映されないということがわかりました。
では、一体どうすればいいのでしょうか。

 フォームのコントロールソースには
=([QTY]*[COST]) 数量*値段を入れています。

どうすれば、テーブルに表示できるでしょうか。
ご教授お願いいたします。

過去の質問は、こちらを参考しました。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1002073

A 回答 (6件)

クエリーを覚えると便利です。


テーブル=オペレーターが入力したりする項目
クエリー=テーブルのデータプラスそれから計算出来るさまざまな項目

例えばQTYとCOSTはテーブルに
合計は 合計:[QTY]*[COST}
というようにクエリーに追加すれば、テーブルに
合計という項目を持つ必要がありません。
テーブルの「合計」を削除しても差支えありません。

また入力日という項目をテーブルに持ち
後の整理の目的でクエリーには
年:Year([入力日])
月:Month([入力日])
などとする事も可能です。

これで何年何月のデータだけを抽出したい場合でも
クエリーの抽出条件に 2004 とか 8(月)とかを
入力するだけでOKです。

合計、平均、最大、最小なども....

データベースはクエリーにあるレコードをいちいち保存するのではなく、計算式だけを覚えていて、開くたびに
計算して表示してくれるだけなのです。
    • good
    • 2
この回答へのお礼

お返事が遅くなって申し訳ありませんでした。
丁寧な回答ありがとうございました。
無事、出来ました!

お礼日時:2004/12/15 04:22

>Me![AMOUNT]=Me![AMOUNT]


フォームのフィールド名を変更してください。テーブルのフィールド名と同じだとエラーになります。
フォームのフィールド名を例えばAMOUNT1にしてAMOUNT1のソースに=([QTY]*[COST]) を記述し

Me![AMOUNT]=Me![AMOUNT1]
で保存できます。

>金額とは?
例えば演算させるフィールド名が金額の場合
    • good
    • 1
この回答へのお礼

お返事遅くなり申し訳ありませんでした。
なんとか、出来上がりました。
不具合が出ないよう、願うだけです。
ありがとうございました。

お礼日時:2004/12/15 04:21

どうしてもテーブルに反映したいのであれば


フォームの閉じるボタンやレコードの保存ボタンに記述を追加すれば出来ます。

Me![テーブルのフィールド名] = Me![フォームのフィールド名]
をイベントプロシジャに追加します。ボタンをクリックされたときにそのイベントと一緒にフィールドの値がテーブルに反映されます。

またはフォームのフィールドの変更時のイベントに
Private Sub 金額_Change()
テーブルのフィールド名 = ([QTY]*[COST])
End Sub
フォームのフィールドのコントロールソースはテーブルのフィールドにしてください。
これでも出来るはずです。

この回答への補足

アドバイスありがとうございました。
1つ目の
Me![テーブルのフィールド名] = Me![フォームのフィールド名]
をやってみましたが、エラーになりました。
Me![AMOUNT]=Me![AMOUNT]
にしてみましたが、無理でした。

2つ目のPrivate Sub 金額_Change()についてですが
金額ってなんでしょう?
これは、金額じゃなくても何でも良いんでしょうか?
それとも決まっているのでしょうか?
私のアクセスは、英語版なので、日本語は読み込めないと思いますので、気になりました。
回答よろしくお願いします。

補足日時:2004/12/10 07:50
    • good
    • 1

既に解説があるように、アクセスの場合はテーブルは出来るだけ節約して、他のフィールドの値を利用した


計算結果はクエリーに設定するようにする方が
ファイルサイズの節約にもなり便利です。

クエリーの作り方
クエリー→新規作成→指定のテーブルを選択→
全部選択のボタンを押す→クエリーの名前を決める

クエリーのデザインを開く
列を追加(あるいは空白の列に
フィールド名:([QTY]*[COST]) 数量*値段
としてヴューを見てください。これで新しくフィールド名が表示されると思います。

ここまでの作業で不具合があれば連絡してください。

この回答への補足

丁寧な解説ありがとうございました。
言われたとおりすれば、出来ました!

しかし、私が言い忘れていたことがあります。
「=([QTY]*[COST]) 」これを、「合計」というフィールドに表示したいのです。
でも、新しいフィールドが出来てしまって、そちらに保存となってしまいます。
私が望んでいることは無理でしょうか?


>計算結果はクエリーに設定するようにする方が
ファイルサイズの節約にもなり便利です。

なるほど。ちっとも知りませんでした。
先ほど、一通り注文票に入力してみたところ、クエリにも情報が保存されていました。
全ての情報も、テーブルよりクエリで保存した方が、いいのでしょうか。

もう少しだけお願いします。

補足日時:2004/12/10 06:08
    • good
    • 0

テーブルにデータがあるかのように使いたいのであれば、クエリを作成して、数量×値段のフィールドを追加すれば問題ありません。

この回答への補足

回答ありがとうございました。
やってみたところ、できましたが、同じ名前のフィールドに保存したいのです。

フォーム:合計(数量×値段の答えが表在される所)
テーブル:合計
テーブルの合計に保存したいのですが、できませんでした。

補足日時:2004/12/10 08:01
    • good
    • 0

> フォーム上で計算したものは、テーブルに反映されていませんでした。



> そもそも、テーブルに持たせる必要がないです。
のとおりなんですが (^^ゞ
何か、テーブルに持たせたい理由があるのでしょうか?

この回答への補足

こんにちは。
いつもありがとうございます。

>何か、テーブルに持たせたい理由があるのでしょうか?
最終的には、アクセスからエクセルへ情報を飛ばし、エクセルで情報を管理したいようです。
そのときに、コマンドボタンでエクセルにインポートのボタンを作りましたが、合計金額は、エクセルに反映されていませんでした。
よって、せめてテーブルにはすべての情報を保存したいと思ったからです。

無駄でしょうか・・・?

補足日時:2004/12/10 05:58
    • good
    • 0

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

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


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