اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم ورحمة الله 
كيكفم اخوتي جميعا 
انا عندي قاعدة اكسس تشابة الكويك بوكس ولكن للعملاء والموردين شغالة حاليا في الموردين عند فتح التقرير للمورد المعني بجيب الرصيد التراكمي غير صحيح هكتب اسماء الاستعلامات التي اعمل عليها 
استعلام أساسي VendorStatementBaseQ
VendorStatementWithBalanceQ
التقرير Vendor Statement Report يعتمد على المصدر جدول اسمه TempVendorStatement
كود زر اختيار المورد 

 


Private Sub btnPreview_Click()
    On Error GoTo ErrHandler

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim runningBalance As Double
    Dim tempSQL As String
    Dim vendorID As Long
    Dim dtFrom As Date, dtTo As Date

    ' التحقق من المدخلات
    If IsNull(Me.cboVendor) Or IsNull(Me.txtFromDate) Or IsNull(Me.txtToDate) Then
        MsgBox "يرجى إدخال المورد وتاريخ البداية والنهاية.", vbExclamation
        Exit Sub
    End If

    vendorID = Nz(Me.cboVendor, 0)
    dtFrom = Me.txtFromDate
    dtTo = Me.txtToDate

    Set db = CurrentDb

    ' فتح الاستعلام الأساسي وترتيبه بدقة
    Set rs = db.OpenRecordset( _
        "SELECT * FROM VendorStatementBaseQ " & _
        "WHERE VendorID=" & vendorID & " AND TransDate BETWEEN #" & Format(dtFrom, "yyyy/mm/dd") & "# AND #" & Format(dtTo, "yyyy/mm/dd") & "# " & _
        "ORDER BY TransDate ASC, IIf(TransType='Invoice',0,1), TransNum ASC;", dbOpenDynaset)

    ' تفريغ الجدول المؤقت
    db.Execute "DELETE FROM TempVendorStatement;", dbFailOnError

    runningBalance = 0

    ' حساب الرصيد التراكمي لكل صف مع التعامل مع Null
    Do While Not rs.EOF
        runningBalance = runningBalance + Nz(rs!InvoiceAmount, 0) - Nz(rs!PaymentAmount, 0)

        tempSQL = "INSERT INTO TempVendorStatement " & _
                  "(VendorID, VendorName, TransDate, TransType, Memo, InvoiceAmount, PaymentAmount, RunningBalance) " & _
                  "VALUES (" & Nz(rs!VendorID,0) & ", '" & Replace(Nz(rs!VendorName,""), "'", "''") & "', #" & _
                  Format(Nz(rs!TransDate, Date), "yyyy/mm/dd") & "#, '" & Nz(rs!TransType,"") & "', '" & _
                  Replace(Nz(rs!Memo,""), "'", "''") & "', " & Nz(rs!InvoiceAmount,0) & ", " & Nz(rs!PaymentAmount,0) & ", " & runningBalance & ");"

        db.Execute tempSQL, dbFailOnError
        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
    Set db = Nothing

    ' فتح التقرير
    DoCmd.OpenReport "Vendor Statement Report", acViewPreview

    Exit Sub

ErrHandler:
    MsgBox "حدث خطأ: " & Err.Description, vbCritical
    If Not rs Is Nothing Then rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub


الشاشة الرئيسية اختيار مورد عند وضع الخيار مثلا Nepta وتاريخ البداية 1/1/2025 وتاريخ النهاية 31/12/2025 واضغط الزر بجيب المورد عندة فانورتان واحدة يوم 21/8 بقيمة 132750000  والثانية يوم 21/10/2025 بقيمة 12000000 مفترض الرصيد يكون 144750000 لكن يظهر 277500000 وهو غير صحيح 

ف الفكرة يحسب الفاتورة اولا ثم اذا في مبلغ دفع يتم الخصم 

ارجو منكم المساعدة وربنا يبارك فيكم 

QuickBooksStyle.rar

  • تمت الإجابة
قام بنشر

المشكلة سببها خصيصة في الحقل

افتح تقريرك على التصميم .. وحدد حقل الرصيد ثم عدل الخاصية كما في الصورة (القيمة المحاطة بالمربع الأحمر )

 

image.jpeg.0efcf42d48be0fe1f68442f4acb6929f.jpeg

  • Like 1
قام بنشر (معدل)

@ابوخليل نعم صحيح كانت هي المشكلة سبحان الله 

ولكن جرب واختار معي اخر مورد اسمه PetroNour الرصيد صحيح الى يوم 14/10 =594000000 عند اضافة يوم 15/10 مفترض يطلع = 741150000 ولكن اصبح = 888300000 لانو في رحلتين في نفس التاريخ يقوم بجمع الرحل بس انا اريد اي رحلة في صف منفصل ؟؟؟؟؟

اضافة لي تقرير العملاء عند اختيار عميل بيطلع تقرير كل العملاء 😞 

تم تعديل بواسطه Noon Ali
قام بنشر

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

10 ساعات مضت, Noon Ali said:

عند اضافة يوم 15/10 مفترض يطلع = 741150000 ولكن اصبح = 888300000

تحياتي

QuickBooksStyle.rar

قام بنشر

@منتصر الانسي
مفترض الرصيد التراكمي يزيد لما تكون في فاتورة و ينقص عند وجود دفع 

في حالة بتحصل لمن تكون في عدة رحل في نفس اليوم وبيحصل انه اي رحل في نفس اليوم بتتجمع مع بعض والصح اي رحلة تكون في صف 
مثلا عندك المورد رقم 4 Pertonour عندة عدد 2 رحل يوم 12/10 حط كل وحدة في صف 
150300000 و 143550000 
عمل ايه في الاول جمعهم الاتنين مع +153000000=446850000 الصح الطبيعي انه 

153000000
+ 150300000=303300000 
+143550000=446850000
+147150000=594000000
وهكذا 

اذا عندي دفع يخصم كل عملية تكون لوحدها 

لقطة الشاشة 2025-10-26 081020.jpg

قام بنشر

مشكلتك هي في اتباع الطريقة التقليدية القديمة في تصميم مشروع المبيعات

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

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

حاول مستقبلا استخدام الجدول الواحد عند تصميمك لمشاريع البيع والشراء .

.........................

المشكلة الظاهرة لديك سببها الفرز  ... لا يوجد رقم او نص او تاريخ فريد

انت اعتمدت التاريخ للفرز .. والتاريخ مكرر ..

كان يمكن الفرز باستخدام التاريخ لو كان التاريخ يدخل كاملا ( جنرال ) ( Now )

...................................

استخدمت حيلة وهي اضافة ترقيم تلقائي للجدول .. ويتم الفرز من خلاله في التقرير ... ولكن كما تعلم هذه الارقام ستتضاعف مستقبلا

فعليك الانتباه لهذا .. وعلاجه ان تقوم بضغط واصلاح قاعدة البيانات بين فترة وأخرى

 

 

QuickBooksStyle2.rar

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information