過去ログ

                                Page     407
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼サブフォームの入力でメインフォームの集計値が変更されません  やまざき 03/10/9(木) 1:00
   ┗Re:サブフォームの入力でメインフォームの集計値が変更されません  イケガミ 03/10/9(木) 2:03
      ┗Re:サブフォームの入力でメインフォームの集計値が変更されません  やまざき 03/10/9(木) 13:32
         ┗Re:サブフォームの入力でメインフォームの集計値が変更されません  イケガミ 03/10/10(金) 11:05
            ┗Re:サブフォームの入力でメインフォームの集計値が変更されません  やまざき 03/10/13(月) 7:09

 ───────────────────────────────────────
 ■題名 : サブフォームの入力でメインフォームの集計値が変更されません
 ■名前 : やまざき
 ■日付 : 03/10/9(木) 1:00
 -------------------------------------------------------------------------
   Windows Me,Access 2000のかんきょうです。
配合登録のフォームを作っています。
サブフォームが使用明細テーブルがリンクし、メインフォームに商品テーブルがリンクしています。商品テーブルと使用明細テーブルは、商品テーブルの商品番号と使用明細テーブルのリンク商品番号のフィールドでリレーションを結んでいます。
サブフォームの歩留まり、使用量を変更すると、明細の金額が変更され、メインフォームの集計値が変更されるフォームを作りたいのですが、上手くいきません。
サブフォームに値を代入して、メインフォームの集計に合計を代入し、メインフォームをRepaintかけるんですが、サブフォームは値は変わるんですがメインフォームは書き換わりません。
仕方なく更新クエリー、Updateをしてみたところ、データの競合 このレコードは他のユーザーによって変更されています。が出てきます。メッセージに答えれば変更はされるのですがすんなり変更できないものでしょうか。
宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:サブフォームの入力でメインフォームの集計値が変更されません  ■名前 : イケガミ  ■日付 : 03/10/9(木) 2:03  -------------------------------------------------------------------------
   >サブフォームに値を代入して、メインフォームの集計に合計を代入し、
>メインフォームをRepaintかけるんですが、サブフォームは値は変わるんですが
>メインフォームは書き換わりません。

で、実際にはどのような式 Or VBA を記述しているのでしょうか?

 ───────────────────────────────────────  ■題名 : Re:サブフォームの入力でメインフォームの集計値が変更されません  ■名前 : やまざき  ■日付 : 03/10/9(木) 13:32  -------------------------------------------------------------------------
   レスありがとうございます。
値代入のコードは
Private Sub 使用量_Exit(Cancel As Integer)
   Dim tsr As Double
  With Forms!商品1.Form!使用明細のサブフォーム
    tsr = !使用量 / Forms!商品1!出来上がり量 / !使用歩留まり
    !単位使用量 = tsr
    !金額 = tsr * !原価
    !評価金額 = tsr * !評価原価
     '.Requery
  End With
  With Forms!商品1
    !原価 = DSum("金額", "使用明細", "リンク商品番号='" & !商品番号 & "'")
    !評価原価 = DSum("評価金額", "使用明細", "リンク商品番号='" & !商品番号 & "'")
    .Repaint
  End With
End Sub
この方法だとメインフォームが書き換わりません。サブフォームにRequeryをかけてもダメでした。

Private Sub 使用歩留まり_Exit(Cancel As Integer)
   Dim tsr As Variant, db As Database, tb As Recordset, str As String
   Set db = CurrentDb
  With Forms!商品1.Form!使用明細のサブフォーム

    tsr = !使用量 / Forms!商品1!出来上がり量 / !使用歩留まり
    str = "単位使用量=" & tsr & ",金額=" & tsr * !原価 & ",評価金額=" & tsr * !評価原価
    db.Execute "UPDATE 使用明細 SET " & str & " WHERE 番号='" & !番号 & "'"
  End With
  With Forms!商品1
    !原価 = DSum("金額", "使用明細", "リンク商品番号='" & !商品番号 & "'")
    !評価原価 = DSum("評価金額", "使用明細", "リンク商品番号='" & !商品番号 & "'")
    .Repaint
  End With
  Me.Requery
End Sub
この方法だと権限のエラーが出てしまいます。
宜しくお願いします。

 ───────────────────────────────────────  ■題名 : Re:サブフォームの入力でメインフォームの集計値が変更されません  ■名前 : イケガミ  ■日付 : 03/10/10(金) 11:05  -------------------------------------------------------------------------
   サブフォームのフッターあたりに合計を取るためのコントロールを
配置して、そこに集計関数で合計を求めるようにしておき、

Private Sub 使用量_AfterUpdate()
  Me.Recalc
  Me.Parent!集計値テキストボックス = Me!合計値テキストボックス
End Sub

のようにしてみてください。

 ───────────────────────────────────────  ■題名 : Re:サブフォームの入力でメインフォームの集計値が変更されません  ■名前 : やまざき  ■日付 : 03/10/13(月) 7:09  -------------------------------------------------------------------------
   レス遅くなり申し訳ありません。現在時間がないのです。出来るだけ早く時間を作ってやってみます。どうもありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 407