اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
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

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

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

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

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

سجل حساب جديد

تسجيل دخول

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

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

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

Important Information