プロが教えるわが家の防犯対策術!

フォームの値がすぐに表示されない。
宜しくお願い致します。皆様の知恵をお貸しください。
WinXPでACCESS2000を使っております。

テーブル_在庫には
取引先|商品名|買取金額|売上金額|日付のフィールドがあり
A社|みかん|0|10000|2012/11/13
A社|りんご|10000|0|2012/11/13
B社|ぶどう|5000|0|2012/11/13
C社|かき|0|3000|2012/11/13
というレコードがあります。

フォーム_取引先のコンボボックスで、A社を選びコマンドボタンで、
クエリ_取引先買取、クエリ_取引先売上
を実行して、A社だけの取引を抽出し、その結果を
フォーム_取引先買取とフォーム_取引先売上
に、表形式で表示させています。
このままでは、フォームが2つになるので、新たに基になるテーブルも
クエリも持たない、フォーム_売買を作りました。
このフォーム_売買にテキストボックスを6つ作り次のようにしました。

テキストボックス|コントロールソース
----------------------------------------
テキスト1(取引先)|=Forms![取引先]![コンボ1]
テキスト2(買取金額)|=Forms![買取]![テキスト1]
テキスト3(売上金額)|=Forms![売上]![テキスト1]
テキスト4(買取報償料)|非連結
テキスト5(売上報償料)|非連結
テキスト6(合計金額)|=[テキスト2]+[テキスト4]-[テキスト3]-[テキスト5]

ここで、問題になっているのが、フォーム_売買を表示させた時に、テキスト1は
普通にA社と表示されているのですが、テキスト2とテキスト3に金額が表示され
ません。
しかし、テキスト4もしくはテキスト5に金額を入力すると、表示されるようになり
ます。
テキスト4とテキスト5のどちらかには必ず金額を入力するので、このままでも
とりあえずは計算出来ているのですが、できれば、フォームが表示された時に
初めからテキスト2とテキスト3には金額が入っていたほうがいいと思い、あれ
これ試してみたのですが、出来ませんでした。

フォーム_取引先のコマンドボタンは次のように実行しています。
Dim stDocName As String
Dim stDocName1 As String

stDocName = "取引先売上"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName1 = "取引先買取"
DoCmd.OpenQuery stDocName1, acNormal, acEdit

DoCmd.OpenForm stDocName, acNormal
DoCmd.OpenForm stDocName1, acNormal

DoCmd.OpenForm "売買", acNormal

どうすれば、フォーム_売買が表示された時に、テキスト2とテキスト3に金額が
入っているようになるのでしょうか。
素人が見よう見まねで作っておりますので、おかしい点が多々あるかと思い
ますが、ご教授のほど、よろしくお願い致します。

A 回答 (2件)

色々苦労なさっていますね


あなたのなさりたいことはテーブル2つとフォーム2つで可能だと思います。

1.テーブル
 テーブル_在庫
  ID
  取引先
  商品名
  買取金額
  売上金額
  日付
  ※金額欄は既定値を0にします。
  エクセルではブランクのセルは0として計算しますが、集計対象に一つでもブランクがあればえらーになります。
  ※テーブル新規作成時にIDが主キーとして作成されますが残します。
  
 テーブル_取引先
  ID
  取引先
  ...
  これにはフリガナ、住所等項目を追加可能です

2.フォーム
 メニュー
  取引先のコンボボックス(抽出キー)を配置してこれをフォーム売買の抽出キーとします
  
 フォーム_売買
  フォームウィザードでテーブル_在庫をデータとして
  ガイドに従い作成します。
  出来上がったフォーム_売買をデザインビューで開き
  表示されるプロパティーボックスのテータタグのレコードソースの右端をクリックすると
  クエリー画面になります。
  取引欄の抽出条件に forms!メニュー!抽出キーと記述します。
 
  これでメニューを開き、取引先を選び、フォーム_売買を開来ます。

※集計の設定機能はフォームウィザード内にありますが、分かりにくいので落ち着いて進めてください
  
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。
教えていただいたように、フォーム_売買をテーブル_台帳を基に作り直して
みたいと思います。
ご教授ありがとうございました。

お礼日時:2012/11/17 00:24

同様の状態が再現できないので、あまり確信は無いのですが



フォーム_売買のForm_Open時に以下のように記述してみたらどうでしょう?

Me.テキスト2.Requery
Me.テキスト3.Requery
    • good
    • 0

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

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


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