(08/12/2016, 02:38)ozanakkaya yazdı: Üst mesaja yazdığım düzenleme işe yaramıyor. Altforma yazılan yeni veriyi tabloya kaydedilmediği için Dsum kodu hatalı çalışıyor.
Kaydetmek için "DoCmd.RunCommand acCmdSaveRecord" kullanınca da ilk kayda gidiyor.
1-)Alt formdaki LINE_MALIYET fonksiyonundaki "DoCmd.RunCommand acCmdSaveRecord" kodunu iptal et
2-) Alt formun form alt bilgisi kısmına "GTOPLAMALIYET" adında metin kutusu ekle, denetim kaynağına da
=DSum('MALIYET_TUTAR';'ORD_LINE';'[SIP_ID]=' & [Formlar]![ORD_MAIN_FORM]![SIP_ID])-DSum('MALIYET_TUTAR';'ORD_LINE';'[SIP_LINE_ID]=' & [SIP_LINE_ID])+[TUTAR]
kodu ekle,
3-) LINE_MALIYET fonksiyonundaki "SİPARİŞ TOPLAM MALİYETİNİ ANA TABLOYA YAZ" şeklinde belirttiğiniz ilk docmd.runsql kodunu iptal et, yerine aşağıdaki kodu ekle
DoCmd.RunSQL "UPDATE ORD_MAIN INNER JOIN ORD_LINE ON ORD_MAIN.SIP_ID = ORD_LINE.SIP_ID SET ORD_MAIN.TAHM_TOPLAM_MALIYET = [Forms]![ORD_MAIN_FORM]![ORD_LINE_FORM].[Form]![GTOPLAMALIYET] WHERE (((ORD_MAIN.SIP_ID)=[Formlar]![ORD_MAIN_FORM]![SIP_ID]));"
Denedim yine olmadı satırda miktar ve birim fiyat güncelledikten sonra alt satıra geçene kadar değişiklik yapmıyor.
Enter tuşu ile alt satıra gidildiğinde yine alt formun ilk satırına dönüyor.