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

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

قام بنشر

السلام عليكم اساتدتي الكرام

 وجدت مشكلة في جلب قيمة مالية من استعلام بمعيار تاريخ اخر السنة كلما حاولت يكتب النتيجة 0

فورم  FrmMada5il

Me.txtYear = Year(Date)
Me.txtMonthe = #12/31/2024#
Me.Roming = Nz(DSum("[Remaining_Cridi]", "[Baghi3112]", "[Forms]![FrmMada5il]![Payment_Month1]=" & [txtMonthe]), 0)

الاستعلام Baghi3112

SELECT tbl_Loans.Loan_ID, tbl_Loans.EmployeeID, Format([Payment_Month],"mmmm  yyyy") AS Month_Year, [Forms]![FrmMada5il]![txtMonth] AS Payment_Month1, Sum_Remaining([Payment_Month1],[EmployeeID],"Cridi",Loan_ID) AS Cridi, Count_Remaining([Payment_Month1],[EmployeeID],[Loan_ID],"Cridi") AS Remaining_Cridi
FROM tbl_Loans
GROUP BY tbl_Loans.Loan_ID, tbl_Loans.EmployeeID, Format([Payment_Month],"mmmm  yyyy"), [Forms]![FrmMada5il]![txtMonth]
HAVING (((Format([Payment_Month],"mmmm  yyyy"))=Format([Forms]![FrmMada5il]![txtMonth],"mmmm  yyyy")));

ارجو المساعدة

2025-01-21_20-44-35.jpg.00e6e5e59ed631a72b2744f54ca8848a.jpg

20250121.rar

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

اخي الكريم بدلاً من الدخول في متاهة تتبع الاكواد ، ما الحقل الذي تريد جلب مجموعه من الجدول بشرط التاريخ ؟؟؟

تم تعديل بواسطه Foksh
قام بنشر (معدل)
16 دقائق مضت, Foksh said:

اخي الكريم بدلاً من الدخول في متاهة تتبع الاكواد ، ما الحقل الذي تريد جلب مجموعه من الجدول بشرط التاريخ ؟؟؟

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

الجدول هو  tbl_Loans

الحقل هو مجموع " Loan_Made ناقص Payment_Made"

التاريخ  هو Payment_Month ويكون الى غاية 2024/12/31 او 2024/12/01 حيث النتيجة تكون  1,281,000.00

الشرط Loan_ID اكبر من 0

تم تعديل بواسطه كريمو2
قام بنشر
7 دقائق مضت, كريمو2 said:

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

 

للتحقق ، جرب هذا الاستعلام واخبرني بنتيجته ..

SELECT 
    SUM(Loan_Made - Payment_Made) AS Total_Net_Value
FROM 
    tbl_Loans
WHERE 
    Payment_Month <= #12/31/2024# 
    AND Loan_ID > 0;

 

قام بنشر
5 دقائق مضت, Foksh said:
SELECT 
    SUM(Loan_Made - Payment_Made) AS Total_Net_Value
FROM 
    tbl_Loans
WHERE 
    Payment_Month <= #12/31/2024# 
    AND Loan_ID > 0;

ظهر المبلغ Total_Net_Value=54000.00 والصحيح 1,281,000.00

 

قام بنشر
الان, كريمو2 said:

ظهر المبلغ Total_Net_Value=54000.00 والصحيح 1,281,000.00

 

حسب ما فهمت :

مجموع Loan_Made ناقص مجموع Payment_Made ، صحيح ؟؟

 

هذه الاستعلام ، صحيح لاظهار القيم ؟

SELECT 
    Loan_ID, 
    Payment_Month, 
    Loan_Made, 
    Payment_Made, 
    (Loan_Made - Payment_Made) AS Net_Value
FROM 
    tbl_Loans
WHERE 
    Payment_Month <= #12/31/2024# 
    AND Loan_ID > 0;

 

قام بنشر
6 دقائق مضت, Foksh said:
SELECT 
    Loan_ID, 
    Payment_Month, 
    Loan_Made, 
    Payment_Made, 
    (Loan_Made - Payment_Made) AS Net_Value
FROM 
    tbl_Loans
WHERE 
    Payment_Month <= #12/31/2024# 
    AND Loan_ID > 0;

استاذ العزيز انظر لهذا الكود في الوحدة النمطية fAdd_Observations لربما يوضح لك بعض الاشياء المخفية ولربما انا لم اوضحها

Function Sum_Remaining(p, ID_Emp As Integer, t As String, Loan_ID) As Currency
'On Error Resume Next
     'P = DateSerial(Year(P), Month(P), 1)
     M = Month(p)
     Y = Year(p)
If Loan_ID <> 0 Then
    If t = "Cridi" Then
     s = DSum("[Payment_Made]", "tbl_Loans", "[EmployeeID]=" & ID_Emp & " And month([Payment_Month])=" & M & " And Year([Payment_Month])=" & Y & " And [Loan_Type]='Cridi'") 
    End If
    If t = "Elec" Then
     s = DSum("[Payment_Made]", "tbl_Loans", "[EmployeeID]=" & ID_Emp & " And month([Payment_Month])=" & M & " And Year([Payment_Month])=" & Y & " And [Loan_Type]='Elec'")
    End If
Else
    If t = "Inkhirat" Then
     s = DSum("[Payment_Made]", "tbl_Loans", "[EmployeeID]=" & ID_Emp & " And month([Payment_Month])=" & M & " And Year([Payment_Month])=" & Y & " And [Loan_Type]='Inkhirat'")
End If
End If
    If IsNull(s) Then
        Sum_Remaining = 0      
    Else
        Sum_Remaining = s  
    End If
End Function

 

  • Sad 1
قام بنشر (معدل)
21 دقائق مضت, Foksh said:

حسب ما فهمت :

مجموع Loan_Made ناقص مجموع Payment_Made ، صحيح ؟؟

 

هذه الاستعلام ، صحيح لاظهار القيم ؟

SELECT 
    Loan_ID, 
    Payment_Month, 
    Loan_Made, 
    Payment_Made, 
    (Loan_Made - Payment_Made) AS Net_Value
FROM 
    tbl_Loans
WHERE 
    Payment_Month <= #12/31/2024# 
    AND Loan_ID > 0;

 

اجبني على سؤالي هنا ..

انسى امر الدالة حالياً

تم تعديل بواسطه Foksh
قام بنشر
4 دقائق مضت, Foksh said:

اجبني على سؤالي هنا ..

 

صح كما اشرت استاذي ولكن لم افهم النتيجة تظهر خاطئة مانعرف

ايحسب على تاريخ Payment_Month ام على تاريخ Auto_Date

في الحدول tbl_Loans

قام بنشر
2 دقائق مضت, كريمو2 said:

ايحسب على تاريخ Payment_Month ام على تاريخ Auto_Date

 

انظر ..

Private Sub txtMonthe_AfterUpdate()
    Dim Total As Double
    Dim EndDate As Date
    EndDate = CDate(Me.txtMonthe.Value)
    Total = Nz(DSum("Loan_Made - Payment_Made", "tbl_Loans", "Payment_Month <= #" & EndDate & "# AND Loan_ID > 0"), 0)
    Me.Roming = Format(Total, "Standard")
End Sub

 

قام بنشر
7 دقائق مضت, Foksh said:
Private Sub txtMonthe_AfterUpdate()
    Dim Total As Double
    Dim EndDate As Date
    EndDate = CDate(Me.txtMonthe.Value)
    Total = Nz(DSum("Loan_Made - Payment_Made", "tbl_Loans", "Payment_Month <= #" & EndDate & "# AND Loan_ID > 0"), 0)
    Me.Roming = Format(Total, "Standard")
End Sub

ظهرت  النتيجة كما يلي 

image.png.34fa81b5a94db68db8d6145ae2676352.png

قام بنشر

صديقي انا اعرف النتيجة ، ولكنت من يجب ان يتحقق منها ؟؟

بناءً على معلوماتك ،، مجموع Loan_Made ناقص مجموع Payment_Made ضمن شرط التاريخ !!!!

 

قام بنشر (معدل)
11 دقائق مضت, Foksh said:

صديقي انا اعرف النتيجة ، ولكنت من يجب ان يتحقق منها ؟؟

بناءً على معلوماتك ،، مجموع Loan_Made ناقص مجموع Payment_Made ضمن شرط التاريخ !!!!

استاذي العزيز انا وضحت لك بالمنطق الحسابي

تسلم قروض مالية  على عدة اشهر لكي يسترجع 

مجموع القروض هي مجموع  Loan_Made

مبلغ الاشهر المقتطعة هي  مجموع Payment_Made

مجموع القروض - مبلغ القروض للاشهر المقتطعة = الباقي 

ولكن لماذا النتيجة خاطئة  ؟؟؟

مقارنة بالاستعلام  Baghi3112

 

 

تم تعديل بواسطه كريمو2
قام بنشر
52 دقائق مضت, Foksh said:

هذه الاستعلام ، صحيح لاظهار القيم ؟

 

مع العلم ان الاستعلام Baghi3112 لا يأتي بنتائج

 

قام بنشر
1 دقيقه مضت, Foksh said:

مع العلم ان الاستعلام Baghi3112 لا يأتي بنتائج

 

كيف ؟

يأتي بمجموع الباقي Remaining_Cridi وهي النتيجة الصحيحة  

قام بنشر
4 دقائق مضت, كريمو2 said:

يأتي بمجموع الباقي Remaining_Cridi وهي النتيجة الصحيحة  

Help.thumb.gif.6ee060a5d885710228aa94a2d88faa63.gif

قام بنشر
41 دقائق مضت, Foksh said:
Private Sub txtMonthe_AfterUpdate()
    Dim Total As Double
    Dim EndDate As Date
    EndDate = CDate(Me.txtMonthe.Value)
    Total = Nz(DSum("Loan_Made - Payment_Made", "tbl_Loans", "Payment_Month <= #" & EndDate & "# AND Loan_ID > 0"), 0)
    Me.Roming = Format(Total, "Standard")
End Sub

المعذرة، أنصح عند عمليات البحث بتحويل حقول التاريخ إلى رقم طويل Long فهي أكثر أمانا للمبرمج:
 

Private Sub txtMonthe_AfterUpdate()
    Dim Total As Double
    Dim EndDate As Long
    
    EndDate = CLng(CDate(Me.txtMonthe.Value))
    Total = Nz(DSum("Loan_Made - Payment_Made", "tbl_Loans", "Clng(Payment_Month)<=" & EndDate & " AND Loan_ID > 0"), 0)
    
    Me.Roming = Format(Total, "Standard")
End Sub

 

  • Like 1
قام بنشر
3 دقائق مضت, كريمو2 said:

استاذ الاستعلام  Baghi3112 ظهرت لك النتيجة 54000.00

ام كيف ؟

كلاا

الاستعلام كما رأيت لم يجلب اي قيمة

النتيجة من هذا الكود

Private Sub txtMonthe_AfterUpdate()
    Dim Total As Double
    Dim EndDate As Date
    EndDate = CDate(Me.txtMonthe.Value)
    Total = Nz(DSum("Loan_Made - Payment_Made", "tbl_Loans", "Payment_Month <= #" & EndDate & "# AND Loan_ID > 0"), 0)
    Me.Roming = Format(Total, "Standard")
End Sub

 

4 دقائق مضت, AbuuAhmed said:

المعذرة، أنصح عند عمليات البحث بتحويل حقول التاريخ إلى رقم طويل Long فهي أكثر أمانا للمبرمج:

لتجنب مشاكل التنسيق ، نصيحة جميلة ومفيدة .. لكن النتيجة نفسها في تجربة اخونا @كريمو2

قام بنشر (معدل)
11 دقائق مضت, Foksh said:

لتجنب مشاكل التنسيق ، نصيحة جميلة ومفيدة .. لكن النتيجة نفسها في تجربة اخونا @كريمو2

لم أنزل المثال ولم أهتم بالنتيجة ولكن أحببت أن أقدم نصيحتي بشأن البحث بقيم التاريخ.

تم تعديل بواسطه AbuuAhmed
  • Thanks 1
قام بنشر
22 دقائق مضت, Foksh said:
"Loan_Made - Payment_Made"

لا أعلم إذا دالة التجميع تراعي قيم الـ Null عليه للاحتراز ممكن نحول الجملة أعلاه إلى:
 

"Nz(Loan_Made, 0) - Nz(Payment_Made, 0)"

 

  • Like 1
قام بنشر

اطلعت على الاستعلام والحقيقة تصميمه خاطئ.
مرفق عبارة SQL لاستعلام تجميع أرجو أن ينتفع به:
 

SELECT Sum(Nz([tbl_Loans]![Loan_Made],0)) AS Loan_Made, Sum(Nz([tbl_Loans]![Payment_Made],0)) AS Payment_Made, [Loan_Made]-[Payment_Made] AS Balance
FROM tbl_Loans
WHERE (((tbl_Loans.Loan_ID)>0) AND ((CLng([tbl_Loans]![Payment_Month]))<=CLng(CDate([Forms]![FrmMada5il]![txtMonthe]))));

يمكن اختصار العبارة ولكن أنا عملت بكل الاحتياطات اختصارا للوقت.

قام بنشر
7 ساعات مضت, Foksh said:

الاستعلام كما رأيت لم يجلب اي قيمة

 

لان النموذج مفتوح اغلق النموذج وافتح الاستعلام وسترى النتيجة

منذ ساعه, AbuuAhmed said:

اطلعت على الاستعلام والحقيقة تصميمه خاطئ.
مرفق عبارة SQL لاستعلام تجميع أرجو أن ينتفع به:

استاذ ابو احمد حياك الله ان شاء الله انك طبت للشفاء يارب

الاستعلام من تصميم الاستاذ القدير جعفر حياه الله

ولكن الاستعلام يجلب النتيجة الصحيحة وهي باقي القروض الى غاية 2024/12/31 او 2024/12/01 النتيجة 1281.000.00 

2025-01-22_07-29-09.rar

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.

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

×
×
  • اضف...

Important Information