طلب مساعدة - نورال - 07-10-18
السلام عليكم ورحمة الله
هذه اول مشاركة لي في الموقع
ارجو السادة اصحاب الخبرة المساعدة
استخدمت هذا الكود لجمع حقل بين تاريخين
كود :
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
هل يوجد خطأ بالكود ام ان هذا امر طبيعي
ارجو المساعدة كوني مبتدأ بالبرمجة و ارغب ان اتعلم لنفسي فقط وليس تجاريا
ولكم الشكر سلفا
RE: طلب مساعدة - نورال - 07-10-18
شكرا لردك اخي
سارفق مثال عن الموضوع ارجو الاطلاع عليه
واعتذر لانني لم ارف اضافته في المرفقات لذا رفعته كرابط
http://www.mediafire.com/file/ohip1x6i82n083n/WindowsApplication1.rar/file
ارجو المساعدة
RE: طلب مساعدة - rnmr - 07-10-18
لم أجد مشكلة،
RE: طلب مساعدة - نورال - 08-10-18
(07-10-18, 11:39 PM)rnmr كتب : لم أجد مشكلة،
جزاك الله كل خير
اخي لو سمحت اريد الجمع على الجدول نفسه بدون الداتاقريدفيو
هنا تظهر المشكلة دون استخدام الداتاقؤيد فيو اي اثناء الجمع على الجدول كما هو بالمثال المرفق
RE: طلب مساعدة - rnmr - 08-10-18
الجمع تم بالاستعلام كما فعلتي أنتي ولم أغير شيئاُ
أما الداتاجريد فوضعتها للعرض فقط والتأكد من البيانات
RE: طلب مساعدة - نورال - 08-10-18
[attachment=19769 كتب :rnmr pid='129548' dateline='1538945279'][attachment=19769]الجمع تم بالاستعلام كما فعلتي أنتي ولم أغير شيئاُ
أما الداتاجريد فوضعتها للعرض فقط والتأكد من البيانات
RE: طلب مساعدة - rnmr - 08-10-18
(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
RE: طلب مساعدة - نورال - 08-10-18
(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
جزاك الله كل خير وجعله في ميزان حسناتك
فعلا الان اصبح يعطي النتائج صحيحة
وفقك الله
|