استدعاء نموذج حسب رقم معين
السلام عليكم اخي الكريم
شكرا جزيلا على ردك و اهتمامك بارك الله بك وجعلها في ميزان حسناتك
حسب فهمي للتغير الذي قمت به على المرفق انك قمت بانشاء استعلام جديد اسمهqry_uq_accumulated) وجعلته مصدر استعلام السجلات للنموذج فهل كان السر في الحصول على النتيجه هو هذا الكود
Bal: DSum("";"uq";"[Clients_Name]='" & [Clients_Name] & "' AND [selldate]<=#" & [selldate] & "#")و هل لي ان افهم طريقة عمل الكود؟؟
و ما فائدة وجود الوحدة النمطية (fRowCounter)
و اسفة على كثرة الاسئلة و الازعاج
وعليكم السلام اختي :)
خلينا نتكلم بدون كمبيوتر وبدون برنامج :)
أ. احنا علشان نحسب حسابات جعفر ، فلازم نشوف إضبارة جعفر بشكل منفصل عن بقية الاشخاص ،
واذا كان عندنا دفاتر السجلات القديمة ، تلقين ان لكل شخص صفحته الخاصة به ،
ب. البائع في هذه الدفاتر ، يسجل دائن/مدين بحسب التاريخ ،
انا قلت لك في احد مشاركاتي السابقة:
اقتباسوتاريخ المعاملة هو سر نجاح الخطوة التالية
رجاء النظر في الصورة التالية للإستعلام qry_uq_accumulated:
ستلاحظين:
1. فرز الاسماء تصاعدي (لا يهم ان يكون تصاعديا ، فيمكنك عمله تنازليا) ، يعني انا انظر دائن/مدين الشخص الواحد بتسلسل (وهو مافي الملاحظة أ اعلاه) ،
2. الآن وقد تم كتابة معطيات الشخص بتسلسل ، نريد ان نرى تاريخ عملياته كدائن/مدين تصاعديا (وهذا سر نجاح حساب الشخص التراكمي) ،
لهذا السبب ، في النموذج frm_uq_Accumulated ، لما تعملين تصفية للأشخاص ، تحصلين على المقصود في أ و ب :)
الآن وقد تم تنظيم الاسماء والسجلات ، فما علينا إلا جمع المبالغ ونحصل على الحساب التراكمي الصحيح ، والطريقة هي:
نجمع قيمة B (تذكري اننا طرحنا الدائن والمدين في الاستعلام uq في الحقل B) من نتائج الاستعلام uq ، بشرط
ان اسم الزبون المتسلسل هنا هو نفس الزبون في الاستعلام uq ،
وان تاريخ المعاملة هي اصغر من او تساوي تاريخ المعاملة في تسلسل استعلامنا qry_uq_accumulated (يعني التاريخ الاصغر ثم يليه التاريخ الاكبر منه) ، فبهذه الطريقة يكون الحساب التراكمي :)
اما الوحدة النمطية (fRowCounter) ، فكنت ساستعملها لعمل تسلسل في الاستعلام ، لكني غيرت رأيي ونسيت ان احذفها :(
هذه الوحدة لأحد اصحابي القدامى وكنا نتشارك في المنتدى الاجنبي www.experts-exchange.com ، وانا اعتمد على هذه الوحدة لعمل ارقام تسلسلية في استعلام :)
جعفر
تم تعديل هذه المشاركة بواسطة jjafferr في 26 أكتوبر 2014 في 16:08
اخي الكريم و الله لا اعرف ما اقول لك على طولة بالك معي و شرحك الوافي لا يسعني الا الدعاء لك في ظهر الغيب بالعافية و البركة في مالك و عمرك
و اكيد +1
جزاك الله عني الف خير
حياك الله :)
DoCmd.GoToRecord , , acNewRec
السلام عليكم
اخي الكريم
ارجو النظر في الصورة المرفقه
و ايضا قمت باضافة الكود التالي في حدث عند الفتح لنموذج bounds , sell وذلك للحصول على صفحة فارغه عند فتح النموذج الامر يمشي تمام و لكن عند محاولة استدعاء السندات و فاتورة المبيعات من نموذج 2 تظهر المشكلة التالية المبينه في الصورة
تم تعديل هذه المشاركة بواسطة عبير الزهور في 29 نوفمبر 2014 في 12:04
وعليكم السلام اختي :)
انا عملت استعلام آخر باسم qry_Sum_uq2 ، وجعلته مصدر بيانات النموذج :)
وللعلم ، فان بعض الفواتير تتكرر بنفس الرقم ، واحدة للقبض باسم شخص واخرى نقدي باسم شخص آخر (وهنا كذلك اعتقد بان هذا يصير بسبب عدم تنظيم البيانات بطريقة صحيحة :( )
اما بالنسبة الى فتح النموذجين sell و bonds ،
فقد غيرت كود فتح النماذج من نموذج 2 الى:
If Me.type_of_pay = "قبض" Then
DoCmd.OpenForm "bonds", , , "[bonds_number]=" & Me.SellBillNum, acFormReadOnly, , "I_want_Read_Only"
Else
DoCmd.OpenForm "sell", , , "[SellBillNum]='" & Me.SellBillNum & "'", acFormReadOnly, , "I_want_Read_Only"
End Ifلاحظي آخر السطرين ، فقد مررت قيمة I_want_Read_Only في الامر Me.OpenArgs الى النماذج عند فتحها (واذكرك بان النموذج للقراءة فقط ولايمكن تغيير او اضافة سجل فيه) ،
وعليه ، فكود حدث فتح النماذج اصبح يبحث فيما اذا هذه القيمة موجودة في الامر Me.OpenArgs ، فاذا وجدت ، لم يفتح سجل جديد ، وإلا ، فهو يفتح سجل جديد :
If IsNull(Me.OpenArgs) Then
DoCmd.GoToRecord , , acNewRec
End Ifجعفر
جزاك الله الف خير
+1
السلام عليكم
اخي الكريم
يمكن انه تكون المشكلة الاولى تحل عندما اقوم بادخال بيانات مرتبة و منتظمة
و لكن هل لك رؤية سبب المشكلة الثانية و هي موضحة في الصورة الثانية في عدم ظهور بيانات داخل نموذج السند؟؟
بالانتظار