تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب مساعدة
#1
السلام عليكم ورحمة الله
هذه اول مشاركة لي في الموقع
ارجو السادة اصحاب الخبرة المساعدة

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

كود :
   Public Function Sum_CostReem()
       Dim Number As Double
       Try
           Dim cmd As New OleDbCommand(" Select Sum(CostReem) From Buy Where BuyDate >= @BuyDate1 And BuyDate <= @BuyDate2  ", Conn)
           cmd.Parameters.Clear()
           cmd.Parameters.Add("@BuyDate1", OleDbType.Date).Value = DateTimePicker1.Value
           cmd.Parameters.Add("@BuyDate2", OleDbType.Date).Value = DateTimePicker2.Value
           If Conn.State = 1 Then Conn.Close()
           Conn.Open()
           Number = cmd.ExecuteScalar
           Conn.Close()
       Catch ex As Exception
           Number = 0
           Conn.Close()
       End Try
       Return Number
   End Function
والكود يعمل ولكن فيه ملاحظة 
انه عند ادخال التاريخ الاول (البداية مثلا 29/9/2018) والتاريخ الثاني (النهاية مثلا 5/10/2018)
فانه لايجمع القيم بالحقل (العمود) بيوم 29/9/2018 ويتجاهلها
ويجمع من اليوم الذي بعده اي 30/9/2018 الى 5/10/2018
هل يوجد خطأ بالكود ام ان هذا امر طبيعي 
ارجو المساعدة كوني مبتدأ بالبرمجة و ارغب ان اتعلم لنفسي فقط وليس تجاريا
ولكم الشكر سلفا
الرد }}}
تم الشكر بواسطة:
#2
شكرا لردك اخي 

سارفق مثال عن الموضوع ارجو الاطلاع عليه

واعتذر لانني لم ارف اضافته في المرفقات لذا رفعته كرابط

http://www.mediafire.com/file/ohip1x6i82...1.rar/file

ارجو المساعدة
الرد }}}
تم الشكر بواسطة:
#3
لم أجد مشكلة،

الرد }}}
تم الشكر بواسطة:
#4
(07-10-18, 11:39 PM)rnmr كتب : لم أجد مشكلة،


جزاك الله كل خير 
اخي لو سمحت اريد الجمع على الجدول نفسه بدون الداتاقريدفيو 
هنا تظهر المشكلة دون استخدام الداتاقؤيد فيو  اي اثناء الجمع على الجدول كما هو بالمثال المرفق
الرد }}}
تم الشكر بواسطة:
#5
الجمع تم بالاستعلام كما فعلتي أنتي ولم أغير شيئاُ

أما الداتاجريد فوضعتها للعرض فقط والتأكد من البيانات
الرد }}}
تم الشكر بواسطة: نورال
#6
Photo 
[attachment=19769 كتب :rnmr pid='129548' dateline='1538945279']     الجمع تم بالاستعلام كما فعلتي أنتي ولم أغير شيئاُ

أما الداتاجريد فوضعتها للعرض فقط والتأكد من البيانات
الرد }}}
تم الشكر بواسطة:
#7
(08-10-18, 01:46 AM)نورال كتب :
(08-10-18, 12:47 AM)rnmr كتب : الجمع تم بالاستعلام كما فعلتي أنتي ولم أغير شيئاُ

أما الداتاجريد فوضعتها للعرض فقط والتأكد من البيانات



النتائج عندك مختلفة عن ما عندي

جربي هذا

تم استخدام Between بدلا من => و=<
وأيضاً إضافة Date بعد Value لأداة التاريخ

كود :
Public Function Sum_Kasm()
   Dim Number As Double = 0
   Try
       Dim cmd As New OleDbCommand(" Select Sum(Kasm) From Invoices Where DateInvoice Between @DateInvoice1 And @DateInvoice2  ", Conn)
       cmd.Parameters.Clear()
       cmd.Parameters.AddWithValue("@DateInvoice1", DateTimePicker1.Value.Date)
       cmd.Parameters.AddWithValue("@DateInvoice2", DateTimePicker2.Value.Date)
       If Conn.State <> ConnectionState.Open Then Conn.Open()
       Number = cmd.ExecuteScalar
   Catch ex As Exception
       MsgBox(ex.Message)
   Finally
       Conn.Close()
   End Try
   Return Number
End Function


Public Function Sum_Rabh()
   Dim Number As Double = 0
   Try
       Dim cmd As New OleDbCommand(" Select Sum(Rabh) From Invoices Where DateInvoice Between @DateInvoice1 And @DateInvoice2  ", Conn)
       cmd.Parameters.Clear()
       cmd.Parameters.AddWithValue("@DateInvoice1", DateTimePicker1.Value.Date)
       cmd.Parameters.AddWithValue("@DateInvoice2", DateTimePicker2.Value.Date)
       If Conn.State <> ConnectionState.Open Then Conn.Open()
       Number = cmd.ExecuteScalar
   Catch ex As Exception
       MsgBox(ex.Message)
   Finally
       Conn.Close()
   End Try
   Return Number
End Function
الرد }}}
تم الشكر بواسطة:
#8
(08-10-18, 03:05 AM)rnmr كتب :
(08-10-18, 01:46 AM)نورال كتب :
(08-10-18, 12:47 AM)rnmr كتب : الجمع تم بالاستعلام كما فعلتي أنتي ولم أغير شيئاُ

أما الداتاجريد فوضعتها للعرض فقط والتأكد من البيانات



النتائج عندك مختلفة عن ما عندي

جربي هذا

تم استخدام Between بدلا من => و=<
وأيضاً إضافة Date بعد Value لأداة التاريخ

كود :
Public Function Sum_Kasm()
   Dim Number As Double = 0
   Try
       Dim cmd As New OleDbCommand(" Select Sum(Kasm) From Invoices Where DateInvoice Between @DateInvoice1 And @DateInvoice2  ", Conn)
       cmd.Parameters.Clear()
       cmd.Parameters.AddWithValue("@DateInvoice1", DateTimePicker1.Value.Date)
       cmd.Parameters.AddWithValue("@DateInvoice2", DateTimePicker2.Value.Date)
       If Conn.State <> ConnectionState.Open Then Conn.Open()
       Number = cmd.ExecuteScalar
   Catch ex As Exception
       MsgBox(ex.Message)
   Finally
       Conn.Close()
   End Try
   Return Number
End Function


Public Function Sum_Rabh()
   Dim Number As Double = 0
   Try
       Dim cmd As New OleDbCommand(" Select Sum(Rabh) From Invoices Where DateInvoice Between @DateInvoice1 And @DateInvoice2  ", Conn)
       cmd.Parameters.Clear()
       cmd.Parameters.AddWithValue("@DateInvoice1", DateTimePicker1.Value.Date)
       cmd.Parameters.AddWithValue("@DateInvoice2", DateTimePicker2.Value.Date)
       If Conn.State <> ConnectionState.Open Then Conn.Open()
       Number = cmd.ExecuteScalar
   Catch ex As Exception
       MsgBox(ex.Message)
   Finally
       Conn.Close()
   End Try
   Return Number
End Function


جزاك الله كل خير وجعله في ميزان حسناتك
فعلا الان اصبح يعطي النتائج صحيحة 
وفقك الله
الرد }}}
تم الشكر بواسطة: rnmr , rnmr



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم