سلام
از کجا میتونم بفهمم بعد از کیوری گرفتن از یک رکورد ستا داخلش خالی هست
از این دستور استفاده میکنم ولی ایراد میگیره
If rsCustomers.Fields("name").Value = "" Then
یک سوال
recordcount چه کاری انجام میدهد ؟ برای من همیشه عدد 1- را بر میگرداند
سلام
از کجا میتونم بفهمم بعد از کیوری گرفتن از یک رکورد ستا داخلش خالی هست
از این دستور استفاده میکنم ولی ایراد میگیره
If rsCustomers.Fields("name").Value = "" Then
یک سوال
recordcount چه کاری انجام میدهد ؟ برای من همیشه عدد 1- را بر میگرداند
Recordcount برای یک رکوردست ,تعداد رکوردهای موجود در آن را به ما می دهد.
یعنی برای بررسی خالی بودن رکوردست می نویسیم
if rsCustomers.RecordCount = 0 then
...
دقت بیشتری بکنید حتما یک جای کار را درست انجام نمی دهید.برای من همیشه عدد 1- را بر میگرداند
دوست عزیزم،
برای اینکه RecordCount مقدار واقعی رو نشون بده، باید قبل از باز کردنRecordset، براش CursorLocation رو تنظیم کنید:
MyRecordset.CursorLocation=adUseClient
موفق باشید،
امین ثباتی MCSD
if (rst.eof=true) and (rst.bof=true) then
....
end if
متد recordcount برای بعضی از provider ها جواب نمیده و همیشه مقدار 1- رو برمیگردونه
در عبارت زیر مقدار count همیشه ۱- خواهد بود :
(myrs.execute(query
count=myrs.RecordCount
برای حل این مشکل بایستی رکوردست را با CursorType مساوی adOpenStatic باز کرد . بعبارت دیگر بجای دستورات فوق از دستور زیر استفاده کنید :
myrs.Open squery, Cn, adOpenStatic, adLockOptimistic
count=myrs.RecordCount
:wink:
در بعضی از provider ها از قبیل اوراکل شما اصلا این قابلیت رو ندارید همچنین امکان سورت یا فیلتر کردن هم وجود ندارددر عبارت زیر مقدار count همیشه ۱- خواهد بود :
(myrs.execute(query
count=myrs.RecordCount
برای حل این مشکل بایستی رکوردست را با CursorType مساوی adOpenStatic باز کرد . بعبارت دیگر بجای دستورات فوق از دستور زیر استفاده کنید :
myrs.Open squery, Cn, adOpenStatic, adLockOptimistic
count=myrs.RecordCount
و تازه بازکردن رکوردست از نوع static برای کسانی که میخواهند اطلاعات online رو ببینند (مثلا برنامه تحت شبکه) زیاد مفید نیست
سلام
اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount
- do while not record1.eof
list1.additem(record1("code")
record1.movenext
loop
عجیب ترین و غیر منطقی ترین راه حل :shock:اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount
do while not record1.eof
list1.additem(record1("code")
record1.movenext
loop
در نهایت در صورت عدم امکان استفاده از RecordCountبهترین راه حل :)if (rst.eof=true) and (rst.bof=true) then
....
end if
بله وقتی خود ado میتونه تشخیص بده که رکوردست خالیه چرا از حلقه استفاده کنیمنقل قول:
اگر دیگه خیلی ازیت کرد میتونی از یک متغییر برای شمارش تعداد رکوردهات استفاده کنی ویا در یک listbox که visible آن false شده رکوردها را اضافه کنی سپس بنویسی a= list1.listcount
do while not record1.eof
list1.additem(record1("code")
record1.movenext
loop
عجیب ترین و غیر منطقی ترین راه حل
نقل قول:
if (rst.eof=true) and (rst.bof=true) then
....
end if
در نهایت در صورت عدم امکان استفاده از RecordCountبهترین راه حل