PDA

View Full Version : کانتر در یک تک باکس



h_r_ibm
شنبه 12 شهریور 1384, 10:45 صبح
باعرض سلام
من یه تکست باکس دارم که با فیلد ردیف جدولم در ارتباطه و من هر موقع می خواهم نفر جدیدی رو تو جدول ثبت کنم برای اینکه سیستم این شماره رو اختصاص بده MOVE LAST می کنم و بعد شماره ردیف نفر آخر رو برمی دارم به اضافه یک می کنم برای نفر جدید اختصاص می دم

حالامشکل اینجایت تو بعضی از سیستم ها وقتی به شماره ردیف به 40 می رسه دیگه سیستم می آد نفر 41 توی اولی می نویسه و تمام رکوردها شیفت می خورن پائین وهمیشه شماره ردیف نفر آخر همون 40 باقی می مونه و شماره جدید هم 41 تولید می شه
از دوستان می خواستم کمکم کنید تا این مشکل حل بشه

قبلا از توجه شما تشکر وقدردانی می کنم .


DATA1.RECORDSET.MOVELAST
TEMPTEXT=TEXTROW+1
DATA1.RECORDSET.ADDNEW
TEXTROW=TEMPTEXT

dr_g
شنبه 12 شهریور 1384, 10:58 صبح
با سلام
دوست عزیز برای شماره گذاری اتوماتیک به فیلد ردیف این روش رو امتحان کن
ابتدا بزرگترین مقدار رو با استفاده از تابع Max درSql بدست بیاربعد یک مقدار بهش اضافه کن

mRizvandi
شنبه 12 شهریور 1384, 11:23 صبح
سلام

هیچ بانک اطلاعاتی در رابطه به ترتیب قرارگیری اطلاعات در بانک ضمانت نمی کنه. چون وقتی که اطلاعات زیاد شد شروع می کنه با چندیدن پروسس حجم کل فایل بانک رو بدست آوردن و همین باعث میشه که شما با استفاده از MoveLast نتونتی به جوابت برسی و کافیه که یک اس کیو ال که دوستمون هم گفت بنویسی:
این هم یک شبه کد: :چشمک:
Private Function GetNewID() AS Long
rst.Open "SELECT Max(MyId) AS MaxId FROM MyTable" , ...
GetNewID = rst!MaxId + 1
End Function
می تونی طوری تغییرش بدی که برای هر جدولی کا کنه