View Full Version : فهمیدن رسیدن به آخر بانک
alizanganeh
شنبه 11 شهریور 1391, 20:43 عصر
سلام
تو برنامم که با بانک SQL هستش و دارم با دکمه ی Next بین رکورد های جدول جابجا میشم ، میخوام if رو طوری بنویسم که تا وقتی بره به رکورد بعدی که در رکورد آخر نباشه
چون در رکورد آخر اگر دستور movenext بدی ارور میده
نمیدونم چرا یادم نمیاد
ممنون
mohammadriano
شنبه 11 شهریور 1391, 20:55 عصر
If Data.Recordset.AbsolutePosition = Data.Recordset.RecordCount Then
'دستورات
End If
SlowCode
شنبه 11 شهریور 1391, 21:12 عصر
If Data1.Recordset.EOF = True then
Data1.Recordset.MoveFirst
End If
با اين وقتي كه ركورد به آخر برسه دوباره برميگرده اول.
mohammadriano
شنبه 11 شهریور 1391, 21:54 عصر
If Data1.Recordset.EOF = True then
Data1.Recordset.MoveFirst
End If
با اين وقتي كه ركورد به آخر برسه دوباره برميگرده اول.
دقیقاً درست می فرمایید ولی برای بنده مشکلاتی در کنترل بانک MDB 2000. رخ داد که دیگر همچین کاری ممکن نبود به این ترتیب که در رکورد های بیشتر از 802 به کد زیر ایراد می گرفت
If Data1.Recordset.EOF = True then
این واسه من شد تجربه تا دیگه از Eof و Bof استفاده نکنم
البته در مورد SQL نمی دونم شاید mdb 2000 مشکل داشت یا کنترل data ؟
SlowCode
شنبه 11 شهریور 1391, 22:42 عصر
نه من همین الان 1000 تا رکورد توی دیتابیس ایجاد مردم و این کد هم کاملا درست کار کرد.:متعجب:
در ضمن آقای alizanganeh (http://barnamenevis.org/member.php?233233-alizanganeh) کنترل دیتا یه خصوصیتی داره به اسم EOFaction گزینه هاش رو نگاه کن شاید به دردت بخوره.
alizanganeh
یک شنبه 12 شهریور 1391, 00:11 صبح
نه من همین الان 1000 تا رکورد توی دیتابیس ایجاد مردم و این کد هم کاملا درست کار کرد.:متعجب:
در ضمن آقای alizanganeh (http://barnamenevis.org/member.php?233233-alizanganeh) کنترل دیتا یه خصوصیتی داره به اسم EOFaction گزینه هاش رو نگاه کن شاید به دردت بخوره.
خیلی ممنون
ولی من از کنترل استفاده نمیکنم
بانکمو با کد وصل کردم
با کانکشن و رکوردست
خیلی ممنون از همه
alizanganeh
یک شنبه 12 شهریور 1391, 00:24 صبح
If Data.Recordset.AbsolutePosition = Data.Recordset.RecordCount Then
'دستورات
End If
آقا ممنون همین کد واسم عمل کرد
دمت گرم
البته با یکم تغییرات
چون من از کنترل استفاده نمکینم و از کد برای اتصال به بانک استفاده کردم ، و در general متغیری از نوی recordset برای پیمایش در بانک استفاده کردم ، پس به recordset در کد نیازی نیست و میشه :
If Data.AbsolutePosition = Data.RecordCount Then
'دستورات
End If
بازم ممنون
alizanganeh
یک شنبه 12 شهریور 1391, 00:25 صبح
If Data1.Recordset.EOF = True then
Data1.Recordset.MoveFirst
End If
با اين وقتي كه ركورد به آخر برسه دوباره برميگرده اول.
خیلی ممنون عزیزم
اینو قبلا زدم ولی نشد
تازه اینکه بره اول بدرد نمیخوره
باید همون آخر بمونه
بازم ممنون
alizanganeh
یک شنبه 12 شهریور 1391, 01:21 صبح
If Data.Recordset.AbsolutePosition = Data.Recordset.RecordCount Then
'دستورات
End If
آقا یک مشکل
من از همین کد استفاده کردم
و بجای دستورات گفتم exit sub
وی بیرون if و بعدش کارهایی که قراره انجام بشه رو گفتم
ینی اگر شرط برقرار بود exit sub و اگر نبود کدهای بعد از if
ولی به ازای رکورد آخر اون کدها رو اجرا نمیکنه
ینی برای رکورد آخر exit sub اجرا میشه بجای اینگه شرط برقرار نشه
چه کنم؟
ممنون
M.T.P
یک شنبه 12 شهریور 1391, 01:37 صبح
سلام
تو برنامم که با بانک SQL هستش و دارم با دکمه ی Next بین رکورد های جدول جابجا میشم ، میخوام if رو طوری بنویسم که تا وقتی بره به رکورد بعدی که در رکورد آخر نباشه
چون در رکورد آخر اگر دستور movenext بدی ارور میده
نمیدونم چرا یادم نمیاد
ممنون
کد کلید پیمایش به رکورد بعد رو اینطوری باید بنویسید:
If Not Rst.EOF Then Rst.MoveNext
alizanganeh
سه شنبه 14 شهریور 1391, 19:30 عصر
آقا یک مشکل
من از همین کد استفاده کردم
و بجای دستورات گفتم exit sub
وی بیرون if و بعدش کارهایی که قراره انجام بشه رو گفتم
ینی اگر شرط برقرار بود exit sub و اگر نبود کدهای بعد از if
ولی به ازای رکورد آخر اون کدها رو اجرا نمیکنه
ینی برای رکورد آخر exit sub اجرا میشه بجای اینگه شرط برقرار نشه
چه کنم؟
ممنون
آقا فقط همین کد کار میکنه ولی مشکلی که بالا گفتم همچنان هست
چه کنم ؟
ممنون
SlowCode
سه شنبه 14 شهریور 1391, 19:45 عصر
مشكل از كدته. چون ركورد آخر EOF محسوب نميشه، كدت رو بزار تا بررسي بشه.
aleas2
سه شنبه 14 شهریور 1391, 23:20 عصر
البته به نظر بنده به یک روش دگه هم میشه چک کرد بطور مثال اینطور ولی خودم شخصا هنوز چک نکردم
کد
Adodc1.Recordset.RecordCount
تعداد رکورد های دیتابیس رو میده
خب این کد برسی کن ببین جوابگو هست
Static i As Integer
i = i + 1
If i < Adodc1.Recordset.RecordCount Then
Adodc1.Recordset.MoveNext
Else
Exit Sub
End If
m.4.r.m
سه شنبه 14 شهریور 1391, 23:26 عصر
If Not Rst.EOF Then Rst.MoveNext
این جواب رو داده بودن دوست عزیزمون
خوب کاری نداره این دستور رو تو دکمه Next بزن دیگه ارور نمیده
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then
Adodc1.Recordset.MovePrevious
End If
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.