ビスタでAccess2007を使っています
あるテーブルにA~Dまでのフィールドが設定されています。
フォームでフィールドA.Bは手入力して
C.Dには計算式を設定して計算結果を表示させていますがテーブルに反映されません。
(フォームにはきちんど式通りの答えが表示されますがテーブルのフィールドC.Dは空っぽです。)
例
A・・・10,000
B・・・0.1
C・・・1,000(計算式 A*B)
D・・・9,000(計算式 A-C)
フォーム上で行った計算結果をテーブルに入力反映させるにはどうすればよいでしょうか?
テーブルやフォームの作り方が悪いのか?
計算式の設定が悪いのか?
なぜテーブルに反映しないのか理由がわかりません。
そもそもフォーム上での計算はテーブルには反映しないのか?
だとすれば反映させるにはどうすればよいのでしょうか?
テーブルのフィールドに計算式を設定することは出来るのでしょうか?
出来るとすればその方法は?
疑問だらけでどうすれば求める結果が得られるのかさっぱり解りません。
当方Access2007は初心者も同然ですのでわかりやすく解説して戴ければ幸いです。
よろしくご教授ください。
No.4
- 回答日時:
#3です
> テーブルにも「計算C.D」のフィールドを追加しなくてもよいのでしょうか?
> それともフォーム上だけでいいですか?
ごめんなさい。
私の書き方が悪かったのか、・・・・
コントロールソースを使いたさそうな感じがしたので、前回の回答になってしまいました。
前回のは、値用、計算表示用を分けて考えたので、「計算C,D」はフォーム上だけのものになります。
ただ、前回のは[A][B]の入力で、[C][D]を確定させるやり方になります。
書き忘れていましたが、[C][D]は、連結状態であることが基本となります。
(コントロールソースは計算式ではなく、テーブル/クエリのフィールド名が指定されている)
通常操作では、[A][B]を入力したら[C][D]は計算するけど、
この時だけは、[C][D]を計算式以外の値を入力したい、とかあったとすると、
また違った方法をとることになります。
(コントロールソースを使用しないやり方)
※
一度、新規accdbとかにサンプルテーブルを作成してみて、
小さい環境で確かめられるとよいと思います。
No.3
- 回答日時:
フォーム上の話で良いですよね。
値を扱うもの、計算結果を表示するものを分けて考えます。
C, D の値を扱うものはそのままで、「可視」を「いいえ」としておきます。
計算結果を表示するテキストボックスを追加します。(C, D をコピーしてもOK)
テキストボックスの名前を「計算C」「計算D」と仮定します。
それぞれのコントロールソースを設定します。
「計算C」は、 =[A]*[B]
「計算D」は、 =[A]-[計算C]
A, B に入力があると「計算C」「計算D」に結果が表示されますが、
このままでは値を扱う「C」「D」は更新されないので、
フォームの「更新前処理」で値を設定してあげます。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.C = Me.計算C
Me.D = Me.計算D
End Sub
※
テキストボックス「計算C」「計算D」のプロパティは必要に合わせ設定してください。
文字配置 / 編集ロック / タブストップ 等
この回答への補足
回答ありがとうございます。
テーブルにも「計算C.D」のフィールドを追加しなくてもよいのでしょうか?
それともフォーム上だけでいいですか?
よろしくご教授ください。
No.2
- 回答日時:
>C.Dともに各プロパティシートのデータタブ内のコントロールソース
やはりコントロールソースを変更しちゃっているのですね。
この状態はフォームコントロールの名前はCやDですが、テーブル
とは切り離されていますので、反映されないわけです。
コントロールソースはC、Dの元に戻し、とりあえずイベントの
フォーカス取得時にマクロを設定してみてください。
フォームデザインを開いたままで、マクロの作成を行い、
画像のようにアイテムに[FORMS]![本当のフォームの名称]![C]
式に[FORMS]![本当のフォームの名称]![A]*[FORMS]![本当のフォームの名称]![B]
と入れて登録して動かしてみてください。
この回答への補足
再びの回答ありがとうございます。
アクセス2007のどこを探せばよいのでしょうか?
「値の代入」というアクションを見つけることが
出来ません・・・。
なにぶんマクロはさっぱり理解しておりませんので
もう少し詳しい手順をご教授ください。
よろしくお願いいたします。
No.1
- 回答日時:
>C.Dには計算式を設定して計算結果を表示させています
これはどのようにされていますか?(マクロ?VBA?)
もしコントロールソースに最初 C と入っていた場所に
=[A]*[B]のようにされたのであれば、フォーム「C」は
テーブルのC列から切り離されて、唯の計算結果を表す場所と
なっていますので、当然CやD列には保存されません。
マクロでされるのであればイベントの所のフォームA、Bの変更時と
フォームCのフォーカス取得時に値の代入マクロを作成しセットして
おくと良いのではないでしょうか。
(当方2000しかないので2007と違うので正確にお伝えできませんので、雰囲気読み取ってもらえれば。。)
この回答への補足
C.Dともに各プロパティシートの
データタブ内のコントロールソースと
イベントタブ内の更新前処理に
それぞれ同じ式が入っています。
マクロはいまひとつ良く理解できていないので・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
分数の計算で分子が0になったら...
-
30パーセントオフで371円だった...
-
「割る」と「割りかえす」の違い
-
eのマイナス無限大乗
-
10進法で時間の計算で30分が0.5...
-
面積から辺の長さを出す計算式
-
2割負担の計算。
-
中学生の数学を習う順番に並べ...
-
n乗根計算でn値を逆算するには
-
連立方程式の応用
-
映画を1.3倍速で見た時の時間計...
-
プール計算って何ですか?
-
一個当たり15秒の製品を1時間で...
-
積分のエクセル計算式を教えて...
-
公共工事の現場管理費率(%)...
-
計算の仕方とやり方の言葉の違...
-
(x^2-x+1)^10の展開式におけるx...
-
冪乗の計算について教えてください
-
高1数1の計算問題がわかりませ...
-
|e^iRcosθ|≦1となることが分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「割る」と「割りかえす」の違い
-
30パーセントオフで371円だった...
-
面積から辺の長さを出す計算式
-
分数の計算で分子が0になったら...
-
10進法で時間の計算で30分が0.5...
-
eのマイナス無限大乗
-
映画を1.3倍速で見た時の時間計...
-
中学生の数学を習う順番に並べ...
-
楕円の円周の長さの計算の仕方...
-
一個当たり15秒の製品を1時間で...
-
袋のサイズから容量を計算する方法
-
公共工事の現場管理費率(%)...
-
プール計算って何ですか?
-
ある物を作るのに3%材料が必要...
-
半径の計算方法を教えてください。
-
積分のエクセル計算式を教えて...
-
2割負担の計算。
-
青で囲んだやり方だと計算が合...
-
冪乗の計算について教えてください
-
2と3以外の素数は6の倍数±1です...
おすすめ情報