PDA

View Full Version : کمک در مورد نحوه جمع کردن یک ستون DataGrid



mamad_avril
چهارشنبه 27 خرداد 1394, 08:47 صبح
سلام و خسته نباشید خدمت اساتید
من یک دیتابیس اکسس دارم از نوع DataGrid که میخام با کلیک روی دکمه ای توی فرم، اعداد ستون دوم اون جمع و در textbox نمایش داده بشه
خیلی توی سایتهای خارجی گشتم اما به جایی نرسیدم
ممنون میشم اگه کمک کنین
VB6

ahmad abdoli
چهارشنبه 27 خرداد 1394, 20:07 عصر
سلام


Adodc1.RecordSource="SELECT Sum(نام ستون دوم) AS JamKol FROM نام جدول"
text1.text=Adodc1.Recordset.Fields("JamKol")

mamad_avril
پنج شنبه 28 خرداد 1394, 07:04 صبح
دوست خوبم ممنون اما این پیغام رو میده وقتی ران میکنم
Item cannot be found in the collection corresponding to the requested name or ordinal
دیباگر از خط دوم خطا میگیره

ahmad abdoli
پنج شنبه 28 خرداد 1394, 09:55 صبح
سلام مجدد اینطوری اصلاح کن کد رو


Adodc1.RecordSource="SELECT Sum(نام ستون دوم) AS JamKol FROM نام جدول"
َAdodc1.Refresh

text1.text=Adodc1.Recordset.Fields("JamKol")

mamad_avril
شنبه 30 خرداد 1394, 07:31 صبح
خیلی ممنون. کاملا عالی
حالا من هی سوالام بیشتر میشه ببخشید!
دو تا مشکل کوچیک هست فقط! یکیش اینکه وقتی روی دکمه جمع کلیک میکنم و کد اجرا میشه بخاطر سطر دوم، تمام اطلاعات دیتاگرید روی فرم رو محو میکنه.
و دوم اینکه من تکس باکس هایی توی فرم دارم که وقتی متن توش تایپ میکنم دیتا گرید رو فیلتر میکنه. با این کد :
ado.RecordSource = "Select *from phone where family='" & Text2.Text & "'"
مثلن اگه کلا 5 تا رکورد وجود داشته باشه وقتی فیلترش میکنم، 2تا رکورد توی دیتاگرید نشون میده و در نهایت روی دکمه جمع زدن که کلیک میکنم، میخام جمع همون 2 تا رکورد فیلتر شده توی دیتاگرید رو نشون بده اما با این کد جمع همون 5 تا رکورد کلی رو نشون میده

ahmad abdoli
شنبه 30 خرداد 1394, 23:55 عصر
سلام مجدد

سوال اولتون رو متوجه نشدم


اما برا سوال دوم جون شما برای جستو جو از شرط where استفاده کردید برای جمع زدن هم باید اون شرط رو توی کد جمع کردن استفاده کنید وگر نه همه جدول در نظر گرفته می شه


Adodc1.RecordSource="SELECT Sum(نام ستون دوم) AS JamKol FROM نام جدول where family='" & Text2.Text & '"

َAdodc1.Refresh


text1.text=Adodc1.Recordset.Fields("JamKol")

hamed_vb
سه شنبه 12 مرداد 1395, 21:32 عصر
دوست عزیز کد زیر رو کپی کن توی Command باکسو مولفه هاشم رعایت کنن

If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
For i = 1 To Adodc1.Recordset.RecordCount
jam = jam + Val(DataGrid1.Columns(3).Text)
Adodc1.Recordset.MoveNext
Next
Label2.Caption = jam
Adodc1.Recordset.MoveFirst
Else
Label2.Caption = "0 ريال"
End If

isaac23
شنبه 16 مرداد 1395, 07:59 صبح
این روش اصلا بدرد نمیخوره واسه اطلاعات زیاد باید یک ساعت فقط از بالا تا پایین رو چک کنه.
با sql بهترین حالت ممکنه رو داره

m.4.r.m
چهارشنبه 07 مهر 1395, 18:37 عصر
سلام مجدد

سوال اولتون رو متوجه نشدم

اما برا سوال دوم جون شما برای جستجو از شرط where استفاده کردید برای جمع زدن هم باید اون شرط رو توی کد جمع کردن استفاده کنید وگر نه همه جدول در نظر گرفته می شه


Adodc1.RecordSource="SELECT Sum(نام ستون دوم) AS JamKol FROM نام جدول where family='" & Text2.Text & '"
َAdodc1.Refresh
text1.text=Adodc1.Recordset.Fields("JamKol")


در قسمت اول چون ارتباط جدول رو با‌adodc1 گرفتین و برای جمع مجدداً از Adodc1 استفاده می کنین میاد اطلاعات رو رفرش می کنه و فقط جمع رو نشون میده برای این کار می تونید از‌adodc2 استفاده کنید و از نتیجه‌adodc2 استفاده کنید.