اذهب الي المحتوي
أوفيسنا

تعديل دالة استخراج الرصيد السابق


abouelhassan

الردود الموصى بها

السلام عليكم اخوانى الافاضل

هذه الدالة اهدانى ايها الاستاذ 

أبو عبدالله الحلوانى ربنايراضيه يارب ويرضيه اللهم امين 

هنا نموذج اسمه Form1

1.png.a6814c628f7718f2d80fa5d7b7152287.png

بعد الفلترة بتاريخ من و تاريخ الى والسنة المالية

الدالة تحضر الرصيد السابق ممتازة بس خلال السنة المالية واحدة فقط فى الثلاث تقارير الموجود زراير لها بالعلى رصيد سابق مصادر تمويل

اريد تعديلها لكى تحضر الرصيد السابق لاى تاريخ قبل تاريخ من لاى سنة 

الدالة اسمها ClcPrevBalanceMdl

احتاج هذا التعديل جدا اخوانى

بارك الله فيكم اخوانى

 

T3Q - Copy.accdb

رابط هذا التعليق
شارك

عند الشرط في الدالة الموجود Between

بدل stryer قم بتعديل الحقول الخاصة بالتواريخ

مثلا من تاريخ اختر اسم الحقل في الفورم من تاريخ

forms!اسم الفورم ! اسم الحقل

وهكذا الى تاريخ 

بالتوفيق

رابط هذا التعليق
شارك

1 ساعه مضت, اكرم العريقي said:

عند الشرط في الدالة الموجود Between

بدل stryer قم بتعديل الحقول الخاصة بالتواريخ

مثلا من تاريخ اختر اسم الحقل في الفورم من تاريخ

forms!اسم الفورم ! اسم الحقل

وهكذا الى تاريخ 

بالتوفيق

اشكرك اخى ممكن توضيح بارك الله فيك اخي الكريم 

رابط هذا التعليق
شارك

اخى فى الله اكرم العريقي اشكرك استاذى

ممكن حضرتك تنسخ لى الدالة بعد التعد يل مثل هذا لاننى فشلت اكون شاكر فضلك اخى الكريم

بارك الله فيك وبك

Option Compare Database

'this func for calculate previous balance for all customers.
Function ClcPrevBalance(Cno As Integer, Acn As Integer, _
                        yer As Integer, Crntdat As Variant, _
                        Typ As Byte)

'Cno it's means Customer code
'yer it's means Financial year
'Crntdat it's means the start date
'========Edit in 7/5/2022 7:17 PM==========
'Add new two parameters to func
'First For pass Account no--> Acn
'Second For pass Type of calculate--> Typ
'Typ Values are (0,1,2)
'0 for Summtion by Customer no
'1 for Summtion by Account no
'2 for Summtion by 0 + 1
'===========================================

    Dim Strtyer As Variant
    Strtyer = Nz(DLookup("StartYaer", "EndYaer", "NowYaer=" & yer), "")
    Strtyer = DateFormat(Strtyer)
    Crntdat = DateFormat(Crntdat - 1)
'    Crntdat = Crntdat
    
'test first date = start year or not
    If Crntdat <= Strtyer Then
    'if first date = start year the previous balance=0
        ClcPrevBalance = 0
    Else
        Dim Dpt As Double
        Dim Crdt As Double
    'sum debit and credit for all customers
    'between start year to defines date
        If Typ = 0 Then
            Dpt = Nz(DSum("Debit", "Financial_Records", "Customer_ID=" & Cno & " And [Registration_Date] Between " & Strtyer & " AND " & Crntdat), 0)
            Crdt = Nz(DSum("Creditor", "Financial_Records", "Customer_ID=" & Cno & " And [Registration_Date] Between " & Strtyer & " AND " & Crntdat), 0)
        ElseIf Typ = 1 Then
            Dpt = Nz(DSum("Debit", "Financial_Records", "Account=" & Acn & " And [Registration_Date] Between " & Strtyer & " AND " & Crntdat), 0)
            Crdt = Nz(DSum("Creditor", "Financial_Records", "Account=" & Acn & " And [Registration_Date] Between " & Strtyer & " AND " & Crntdat), 0)
        ElseIf Typ = 2 Then
            Dpt = Nz(DSum("Debit", "Financial_Records", "Customer_ID=" & Cno & " And Account=" & Acn & " And [Registration_Date] Between " & Strtyer & " AND " & Crntdat), 0)
            Crdt = Nz(DSum("Creditor", "Financial_Records", "Customer_ID=" & Cno & " And Account=" & Acn & " And [Registration_Date] Between " & Strtyer & " AND " & Crntdat), 0)
        End If
    'get balance = credit - debit
        ClcPrevBalance = Nz(Crdt - Dpt, 0)
    End If
End Function

 

رابط هذا التعليق
شارك

Option Compare Database

'this func for calculate previous balance for all customers.
Function ClcPrevBalance(Cno As Integer, Acn As Integer, _
                        yer As Integer, Crntdat As Variant, _
                        Typ As Byte)

'Cno it's means Customer code
'yer it's means Financial year
'Crntdat it's means the start date
'========Edit in 7/5/2022 7:17 PM==========
'Add new two parameters to func
'First For pass Account no--> Acn
'Second For pass Type of calculate--> Typ
'Typ Values are (0,1,2)
'0 for Summtion by Customer no
'1 for Summtion by Account no
'2 for Summtion by 0 + 1
'===========================================

    Dim Strtyer As Variant
    Strtyer = Nz(DLookup("StartYaer", "EndYaer", "NowYaer=" & yer), "")
    Strtyer = DateFormat(Strtyer)
    Crntdat = DateFormat(Crntdat - 1)
'    Crntdat = Crntdat
    
'test first date = start year or not
    If Crntdat <= Strtyer Then
    'if first date = start year the previous balance=0
        ClcPrevBalance = 0
    Else
        Dim Dpt As Double
        Dim Crdt As Double
    'sum debit and credit for all customers
    'between start year to defines date
        If Typ = 0 Then
            Dpt = Nz(DSum("Debit", "Financial_Records", "Customer_ID=" & Cno & " And [Registration_Date] Between " & Forms![form1]![fromdate] & " AND " & Forms![form1]![todate]), 0)
            Crdt = Nz(DSum("Creditor", "Financial_Records", "Customer_ID=" & Cno & " And [Registration_Date] Between " & Forms![form1]![fromdate] & " AND " & Forms![form1]![todate]), 0)
        ElseIf Typ = 1 Then
            Dpt = Nz(DSum("Debit", "Financial_Records", "Account=" & Acn & " And [Registration_Date] Between " & Forms![form1]![fromdate] & " AND " & Forms![form1]![todate]), 0)
            Crdt = Nz(DSum("Creditor", "Financial_Records", "Account=" & Acn & " And [Registration_Date] Between " & Forms![form1]![fromdate] & " AND " & Forms![form1]![todate]), 0)
        ElseIf Typ = 2 Then
            Dpt = Nz(DSum("Debit", "Financial_Records", "Customer_ID=" & Cno & " And Account=" & Acn & " And [Registration_Date] Between " & Forms![form1]![fromdate] & " AND " & Forms![form1]![todate]), 0)
            Crdt = Nz(DSum("Creditor", "Financial_Records", "Customer_ID=" & Cno & " And Account=" & Acn & " And [Registration_Date] Between " & Forms![form1]![fromdate] & " AND " & Forms![form1]![todate]), 0)
        End If
    'get balance = credit - debit
        ClcPrevBalance = Nz(Crdt - Dpt, 0)
    End If
End Function

 

رابط هذا التعليق
شارك

اشكرك استاذى الحبيب اخى الكريم اكرم العريقي بارك الله فيك وزادك علما يارب

قمت بتعديل الدالة كما تفضلت حضرتك وارفقتها

ولكن النتائج للرصيد السابق دائما =0 على غير الصحيح ارفقت لحضرتك مرفق رجاء الاطلاع والتصحيح ان امكن اكون شاكر فضلك اخى

حفظك الله ورعاك

 

T3Q - Copy(1).accdb

رابط هذا التعليق
شارك

اخي الداله غير موجودة في التقرير والتقارير تعتمد اساسا على استعلامات

انا كتب لك اوامر الجمع في استعلام حسب الحساب في اوامر التقرير

انت قم بتعديل البقية حسب كل شرط تريده

 

T3Q - Copy(1).accdb

  • Like 1
رابط هذا التعليق
شارك

اعزك الله اخى الكريم استاذى اكرم العريقي

حفظك الله وبارك فيك

هذا الاستعلام المسمى رصيد سابق اخى راجعته ووجدت الدالة مكتوبة هنا محددة بالاسود اخى

2.png.b20e3610f44f6576835be1bd47dc0718.png

وعند تجربة المرفق الذى تكرمت اخى بتعديله اعطانى نفس النتيجة الرصيد السابق 0

 

1.png.17632be364631ae2cbe89bcba5eee918.png

حفظك الله واكرمك اخى فى الله رجاء الاطلاع

رابط هذا التعليق
شارك

اسعد الله ايامك استاذى اكرم العريقي حفظك الله

تسلم ايدك اخى الكريم اشكرك لمجهودك لاذال الرصيد السابق =0 فى كل الحسابات بالرغم من وجود رصيد سابق اخى

اول زر اخرج خطأ

1.png.3e0cec51002853f38f1409c365ec12bb.png

الزر الثانى

2.png.3265f10b6b3db9c8a094e10d3381cfba.png

ازر الثالث

3.png.b5147b3f895c8545bb4493b3a832e25c.png

حفظك الله اخى فى الله 

رابط هذا التعليق
شارك

في 4‏/10‏/2022 at 20:25, abouelhassan said:

اسعد الله ايامك استاذى اكرم العريقي حفظك الله

تسلم ايدك اخى الكريم اشكرك لمجهودك لاذال الرصيد السابق =0 فى كل الحسابات بالرغم من وجود رصيد سابق اخى

اول زر اخرج خطأ

1.png.3e0cec51002853f38f1409c365ec12bb.png

الزر الثانى

2.png.3265f10b6b3db9c8a094e10d3381cfba.png

ازر الثالث

3.png.b5147b3f895c8545bb4493b3a832e25c.png

حفظك الله اخى فى الله 

للرفع رفع الله قدركم 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته 

ارجو ان يوافق هذا التعديل مرادك جرب ووافنا بالنتائج 

مع تمنياتي بالتوفيق 

وكامل اسفي علي تأخري بالرد

 

 

T3Q - Copy.rar

  • Like 1
رابط هذا التعليق
شارك

استاذى الحبيب لقلبى اخى الكريم أبو عبدالله الحلوانى

بارك الله فيك اخى الكريم اشكرك اخى

بمراجعة النتائج بالمرفق اخى

هنا اختارن سنة2020 واخترت عرض البيانات وظهرت كما بالصورة

المفروض هنا ان الرصيد السابق=0 لان هذا اول تاريخ فى البرنامج لايوجد تاريخ قبله واخترت رصيد سابق مصدر تمويل

1.png.4ad29b99a0bfa821e332cca938b9b2e1.png

وجدت ان النتائج كما يلى الرصيد السابق هو نفس الرصيد الحالى بالصورة التى بالاعلى

2.png.04c97cb7909d1ec923ba58d9b14404e8.png

ثم اخترت سنة2021و ضغطت زر عرض ظهرت البيانات كما بالصورة

3.png.51bce8bf8ec26040e61cb2ed33c2899b.png

والمفروض ان عندما اضغط على زر رصيد سابق مصدر التمويل او اى زر يظهر الرصيد لاى بيانات قبل تاريخ1/7/2020 ولكن النتيجة كانت

الرصيد السابق نفس الرصيد الحالى بالصورة الاعلى

4.png.f1cefd0e9f8d92e0b46f95da209ba117.png

اشكرك اخى فى الله وبارك لك فى اسرتك الكريمة

رابط هذا التعليق
شارك

ارجو ان يتسع صدرك ولا تنزعج من استفساراتي فكما تعلم - اني فهمي علي قدي -

اولا - حضرتك طلبت ان التجميع يكون حسب التاريخ من الي وليس حسب السنة المالية اليس كذلك؟

لم افهم مقارنة حضرتك بالرصيد السنة المالية بالتاريخ من الي ما وجه المقارنة 

ولو حضرتك ضربت مثال توضيحي بسيط للأرقام الصحيحة حسب تصور حضرتك للفكرة اكن شاكرا 

 

  • Like 1
رابط هذا التعليق
شارك

اكرمك المولى استاذى أبو عبدالله الحلوانى بحق هذه الايام الكريمة

نفترض ان لدينا بيانات 

السنة المالية 2020 تبدأ من1/7/2019 حتى30/6/2020

فى تاريخ1/8/2019 الرصيد=100 وفى 1/9/2019 الرصيد=50

لو انا اختارت التاريخ من1/7/2019 حتى30/6/2020

الرصيد السابق=0

الرصيد الحالى=150

طيب لو اختارت تاريخ من1/9/2019 حتى30/6/2020

الرصيد السابق=100 وهى رصيد 1/8/2019

ثم السنة المالية2021 تبدأ من1/7/2020 حتى30/6/2021

لو انا اختارت تاريخ من1/7/2020حتى30/6/2021

الرصيد السابق=150 وهو كل ما تم انشأه فى ما قبل 1/7/2020 وهوتاريخ1/8/2019 الرصيد=100 وفى 1/9/2019 الرصيد=50

هذه هى الفكرة اخى فى الله الرصيد السابق تراكمى 

اشكرك من كل قلبى

 

رابط هذا التعليق
شارك

اولا - اعتذر عن التأخير، وقد اخبرت حضرتك سابقا اني لا اتابع المنتدي بشكل منتظم هذه الفترة، فأرجو المعذرة

ثانيا- لا اخفيك سرا فانا - ضربت حيص بيص يعني كدا :blink: - :yes: - :biggrin: ولكني لن استسلم الآن ودعني استفسر عن شىء 

ما فهمته وارجو ان يكون هذا صحيحا - انك تريد الاستعلام عن كل السنوات ولكن الرصيد يتم اعتباره لبداية الفترة ثم يتم تجميعه بشكل تراكمي بعد عن كل سنة علي حدا اليس كذلك؟ يعني:

لو كانت بداية الفترة هي 2019/9/1 مثلا ولا يوجد تعاملات قبل هذه الفترة يكون الرصيد = صفر ثم يتم تجميع كل المعاملات كرصيد سابق لكل سنة علي حدا يعني: لو اخر الفترة هي 2022/10/1 يكون الرصيد في 30-6-2020 هو كل الماملات التي تمت خلال الفترة من 9-2019 حتي 6-2020 وليكن 100 مثلا ثم في 30-6-2021 يكون الرصيد هو كل المعاملات التي تمت في 2020 بالاضافة الي الرصيد ولنفترض ان المعاملات كانت 100 أخري + الرصيد في 2019 = 200 يعني في نهاية فترة الاستعلام هيكون الرصيد هو 300 مثلا اليس كذلك؟

ولكن السؤال الآن دالة الرصيد ما هي بهذه الكيفية حيث ان بالمرفق فان الرصيد لديك يساوي (الدائن - المدين + الرصيد) 

فمن اين نأتي بالرصيد بهذه الكيفية اذا؟ هل هنالك حقل خاص بالرصيد مثلا بقاعدة البيانات لدي حضرتك سيتم التجميع علي اساسه 

رابط هذا التعليق
شارك

استاذى الحبيب أبو عبدالله الحلوانى زادك الله من فضله وكرمه سأشرح لحضرتك بمثال

لدينا البيانات الاتية

1-8/2020 حساب تحصيل دائن مبلغ 100 الرصيد=100

12-8-2020 حساب تحصيل مدين مبلغ 50 الرصيد=  -50

1-9-2020 حساب نقدى دائن 1000 الرصيد=1000

1-6-2021 حساب تحصيل دائن 200 الرصيد=200

30-6-2021 حساب نقدى مدين 200 الرصيد=  -200

1-7-2021 حساب تحصيل دائن 1000 الرصيد =1000

10-8-2021 حساب تحصيل مدين 100 الرصيد = -100

التقرير بالرصيد السابق

التقرير من 1-6-2021 الى 30-6-2021

الحساب   الرصيد السابق (هو الرصيد ما قبل1-6-2021)    الدائن  (الشهر الحالى)       المدين  (الشهر الحالى)           الرصيد الحالى (الدائن-المدين+الرصيد السابق)

تحصيل       100-50=50                                                        200                              0                                             200-0+50=250

نقدى           1000                                                         0                                -200                                                  1000+0-200=800

التقرير من 1-7-2021 الى 1-8-2021

الحساب   الرصيد السابق (هو الرصيد ما قبل1-7-2021)    الدائن  (الشهر الحالى)       المدين  (الشهر الحالى)           الرصيد الحالى (الدائن-المدين+الرصيد السابق)

تحصيل      250                                                                1000                                    0                                  1250

التقرير من1-8-2021 حتى30-8-2021

الحساب   الرصيد السابق (هو الرصيد ما قبل1-8-2021)    الدائن  (الشهر الحالى)       المدين  (الشهر الحالى)           الرصيد الحالى (الدائن-المدين+الرصيد السابق)

تحصيل      1250                                                          0                                    -100                                  1150

ده استاذى شرح للمطلوب لعمل الدالة استاذى الحبيب لقلبى اتمنى ان اكون اوضحت لحضرتك

زادك الله واكرمك وبارك لك

احترامى

تم تعديل بواسطه abouelhassan
رابط هذا التعليق
شارك

السلام عليكم 

اولا - دعنا نتفق علي اتفاق ان كان هذا بالامكان وحتي لا يتشعب الامر وتطول بنا فترة عرض الموضوع بدون الوصول الي نتيجة مرضية سأكون متواجد ان شاء الله خلال الثلاثة ايام المقبلة واعتبارا من اليوم ان شاء الله خلال الفترة من 8 م وحتي 10 م بتوقيت القاهرة - فأرجو ان تتواجد معي خلال نفس الفترة حتي يسهل بيننا التواصل ولا تكون الردود متباعدة

ثانيا- واعذرني فقد حاولت ان افهم مثال حضرتك المتقدم بالرد السابق ولم استطع ذلك بشكل واضح هل تكرمت علي بتصميم شكل التقرير المطلوب حتي ولو علي شيت اكسل بالتوريخ والأرقام حتي تكون الصورة واضحة بشكل كافي - فكما تعلم ان الاجابة فرع عن فهم السؤال -

وبعد هذه صورة من تقرير نوع الحسابات بدون الاعتداد بتاريخ السنة المالية اي هذه الأعمدة الذي سيتأثر بالرصيد السابق وفقا لتصور حضرتك 

اعطنا مثالا مصورا ان امكن - وهل هذا النموذج موافق لمطلبك ام تريد عرض تاريخ المعاملة امام انواع الحسابات

وجزاكم الله عني خيرا لصبركم علي

 

123456.png

  • Like 1
رابط هذا التعليق
شارك

استاذى الحبيب الفاضل اخى أبو عبدالله الحلوانى اشكرك حاضر اخى الكريم سأكون متواجد ان شاء الله

اكرمك الله اخى

هذا النموذج مناسب تمام وهناك ثلاث نماذج اخرى اخى 

نموذج مصدر التمويل بالرصيد السابق و نموذج الحسابات بالرصيد السابق ونموذج مصدر التمويل+الحسابات بالرصيد السابق

الموضوع بسيط عليك ان شاء الله التقرير 

رصيد سابق تراكمى دائن الشهر مدين الشهر الرصيد الحالى

كل مشكلتى فى جلب الرصيد السابق 

الدالة السابقة كانت تعمل معى ممتازة حتى تغيرت السنة المالية من2022 الى 2023 وجدتها تجلب الرصيد السابق0 اى بدأت من اول وجديد

وكل الرصيد السابق خلال السنة الماليى2022 لم تجلبه هى دى المشكلة ببساطة شديدة اخى فى الله

وجزاك الله عنا كل خير

اعذرنى استاذى واشكرك لصبرك معى

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information