View Full Version : سوال: شمارش تعدادی از رکوردها با یک شرط
RamezanBeik
یک شنبه 31 مرداد 1389, 13:02 عصر
سلام امیدوارم که خوب باشید.
من می خام بر نامه ام جوری باشه که تعداد رکورد های خاصی رو برای شمارش کنه .مثلا تعداد رکورد هایی که ID آن ها برابر 1 با شه کد زیر رو نوشتم ولی نمی دونک که چا هنگ می کنه تیکه کد رو براتون میزارم 1 نگاه به اون بندازید وبگیید مشکل کجاست .
باتشکر رمضان بیک
Dim c As Double
Do While Rs.EOF = False
If Rs.Fields!ID = 1 Then
c = c + 1
Else
Rs.MoveNext
End If
Loop
sohrab o
یک شنبه 31 مرداد 1389, 14:15 عصر
سلام امیدوارم که خوب باشید.
من می خام بر نامه ام جوری باشه که تعداد رکورد های خاصی رو برای شمارش کنه .مثلا تعداد رکورد هایی که ID آن ها برابر 1 با شه کد زیر رو نوشتم ولی نمی دونک که چا هنگ می کنه تیکه کد رو براتون میزارم 1 نگاه به اون بندازید وبگیید مشکل کجاست .
باتشکر رمضان بیک
Dim c As Double
Do While Rs.EOF = False
If Rs.Fields!ID = 1 Then
c = c + 1
Else
Rs.MoveNext
End If
Loop
بهتره این کارو با دستور Select انجام بدی نه این روش
چون هم:
استاندارده
سریعه
مطمئنه
و ....
RamezanBeik
یک شنبه 31 مرداد 1389, 14:51 عصر
بهتره این کارو با دستور Select انجام بدی نه این روش
چون هم:
استاندارده
سریعه
مطمئنه
و ....
تشکر
فرض کنید که من با دستور زیر این کا رو انجام دادم ولی چه جوری بشمارمشون؟
"SELECT *FROM Save_kontoe WHERE ID=1
"
یعنی اول با دستور فوق ID=1 ها رو جدا کنم وبعد با دستور Rs.Recordcount بشمارمشون و در یک متغییر عدد شمارش شده رو نگه دارم.میشه تو 1 خط کد بیشتر توضیح بدید:خجالت:
M.T.P
یک شنبه 31 مرداد 1389, 14:56 عصر
بعد از کدی که خودتون نوشتید ، متود RecordCount میشه تعداد کل رکوردهای انتخاب شده.
sohrab o
یک شنبه 31 مرداد 1389, 16:01 عصر
تشکر
فرض کنید که من با دستور زیر این کا رو انجام دادم ولی چه جوری بشمارمشون؟
"SELECT *FROM Save_kontoe WHERE ID=1
"
یعنی اول با دستور فوق ID=1 ها رو جدا کنم وبعد با دستور Rs.Recordcount بشمارمشون و در یک متغییر عدد شمارش شده رو نگه دارم.میشه تو 1 خط کد بیشتر توضیح بدید:خجالت:
Select Count(*) from Table Where ID=1 And City='Tehran'
با استفاده از این دستور دقیقا تعداد رکوردها نمایش داده میشه
--------------------
بعد از کدی که خودتون نوشتید ، متود RecordCount میشه تعداد کل رکوردهای انتخاب شده.
البته این روش هم بد نیست اما وقتی تعداد رکورد خیلی زیاده سرعت پایینی داره اما کلا روش مناسبی نیست
RamezanBeik
دوشنبه 01 شهریور 1389, 09:00 صبح
سلام بر شما بزرگواران .
دوستان من از هر دو دستو ر شما عزیزان استفاده کردم اما جواب های متفاوت گرفتم.
من تو جدولم دوتا رکو رد بیشتر ندارم که ID=1 باشه اماوقتی از دستور زیر استفاده می کنم مقدار 4 رو بر می گردونه
Rs.Open "Select count(*)from Save_kontor where Id =1", CN, adOpenStatic, adLockOptimistic
Text2.Text = Count
و زمانی که از کد زیر استفاده می کنم مقدار 10 رو بر می گردونه
Rs.Open "Select *from Save_kontor where Id =1", CN, adOpenStatic, adLockOptimistic
Text2.Text = Rs.RecordCount
خیلی با هاش سرو کله زدم ولی درست نشد حتی تعداد کل رکورد ها رو هم درست بر نمگردونه؟گیر کردم چیکار کنم؟؟؟؟:عصبانی++:
البته از حق نگذریم وقتی به Grid وصل می کنم دقیقا دو تا رکورد رو نمایش میده اما به کار من نمیاد من می خام که تعداد رو برگردونه تا از این مقادیر استفاده کنم.
mohsen.j1990
دوشنبه 01 شهریور 1389, 12:42 عصر
بهتره از این کد استفاده کنی معلومه sql زیاد راه نیفتادی
dim i as integer
rs.movefirst
do while not rs.eof
if rs("FieldName")=1 then
i=i+1
end if
rs.movenext
loop
M.T.P
دوشنبه 01 شهریور 1389, 12:52 عصر
سلام بر شما بزرگواران .
دوستان من از هر دو دستو ر شما عزیزان استفاده کردم اما جواب های متفاوت گرفتم.
من تو جدولم دوتا رکو رد بیشتر ندارم که ID=1 باشه اماوقتی از دستور زیر استفاده می کنم مقدار 4 رو بر می گردونه
Rs.Open "Select count(*)from Save_kontor where Id =1", CN, adOpenStatic, adLockOptimistic
Text2.Text = Count
و زمانی که از کد زیر استفاده می کنم مقدار 10 رو بر می گردونه
Rs.Open "Select *from Save_kontor where Id =1", CN, adOpenStatic, adLockOptimistic
Text2.Text = Rs.RecordCount
خیلی با هاش سرو کله زدم ولی درست نشد حتی تعداد کل رکورد ها رو هم درست بر نمگردونه؟گیر کردم چیکار کنم؟؟؟؟:عصبانی++:
البته از حق نگذریم وقتی به Grid وصل می کنم دقیقا دو تا رکورد رو نمایش میده اما به کار من نمیاد من می خام که تعداد رو برگردونه تا از این مقادیر استفاده کنم.
اگه ممکنه بانک رو آپلود کنید.
RamezanBeik
دوشنبه 01 شهریور 1389, 13:01 عصر
بهتره از این کد استفاده کنی معلومه sql زیاد راه نیفتادی
dim i as integer
rs.movefirst
do while not rs.eof
if rs("FieldName")=1 then
i=i+1
end if
rs.movenext
loop
با تشکر ازشما بزرگوار در سته من هنوز تو SQL راه نیفتادم.ولی کدی که شما برای من قرار دادید یه چیزی شبیه کد خودمه که جواب نمی ده.بازهم از وقتی که گذاشتید تشکر می کنم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.