PDA

View Full Version : کار با جداول



fatimah
دوشنبه 07 آذر 1384, 12:10 عصر
با سلام . من یه برنامه ای توی وی بی نوشتم که با جدول کار میکنه . رکورد میگیره و اضافه می کنه و حذف می کنه و ... می خوام بدونم که اگه بخوام که رکوردایی که می گیره از اول اضافه کنه ، یعنی رکورد 1 رو که گرفت ، وقتی دومی رو می گیره نره بعد از اولیه بنویستش . یعنی با ورود رکورد جدید اون رکورده ی قبلی یکی خونه بره پایین ( امیدوارم که تونسته باشم خوب توجیه کنم ! ) بعد وقتی که 100 تا رکورد وارد شد ، هنگام ورود رکورد 101 ، از اخر که حالا رکورده ی اولی رفته اونجا ، یکی یکی اونا حذف بشن . لطفا اگه یکی می دونه که چطوری می شه این کار رو کرد بهم بگه . ممنون می شم
موفق باشین ....

sinpin
دوشنبه 07 آذر 1384, 12:35 عصر
با سلام . من یه برنامه ای توی وی بی نوشتم که با جدول کار میکنه . رکورد میگیره و اضافه می کنه و حذف می کنه و ... می خوام بدونم که اگه بخوام که رکوردایی که می گیره از اول اضافه کنه ، یعنی رکورد 1 رو که گرفت ، وقتی دومی رو می گیره نره بعد از اولیه بنویستش . یعنی با ورود رکورد جدید اون رکورده ی قبلی یکی خونه بره پایین ( امیدوارم که تونسته باشم خوب توجیه کنم ! ) بعد وقتی که 100 تا رکورد وارد شد ، هنگام ورود رکورد 101 ، از اخر که حالا رکورده ی اولی رفته اونجا ، یکی یکی اونا حذف بشن

سلام دوست عزیز
امیدوارم که منظور شما رو درست متوجه شده باشم.
شما میتونید اینکار رو به اینصورت انجام بدید :
1- یک فیلد autonumber داشته باشید
2- و یک کوئری بنویسید که محتویات 100 رکورد اول جدول رو (که بصورت نزولی:از بزرگ به کوچک، براساس فیلد autonumber مرتب شده اند) نشون بده و بقیه رو پاک کنه.

ehsan_ansaripoor
دوشنبه 07 آذر 1384, 13:44 عصر
دوست عزیز البته یک نکته را اشاره کنم که استفاده از فیلد AutoNumber در مواردی که با حذف رکورد روبرو بشه دیگر اعداد از شماره مسلسلی پیروی نمی کنه
در سوالی که دوستمون پرسیدند می تونید از خاصیت Edit به جای حذف و اضافه رکورد استفاده کنید به این صورت:


if Data1.Recoredest.RecordCount=100 then
Data1.Recordest.FindFirest "FiledNum=1"
Data1.Recodest.Edit
Dara1.Recordest.Filed("filedNum")=11
...
Data1.Recordest.Update
end if

در این کد شما ملاحظه می کنید که برنامه در صورتی که تعداد رکوردها برابر 100 رکورد شود رکورد شماره 1 را پیدا می کند تغییرات را اعمال و مقدار آن را به 11 تغییر می دهد این مقدار 11 به دلیل آن است که برای پیدا کردن مجدد برنامه بفهمد که این رکورد مورد تغییر قرار گرفته و برای ادامه سراغ رکورد بعدی برود و دوباره بعد از اینکه تعداد رکوردها به 100 رسید مقدار 11 را به 1 تبدیل کنید

امیدوارم توانسته باشم کمک کنم

sinpin
دوشنبه 07 آذر 1384, 15:02 عصر
دوست عزیز البته یک نکته را اشاره کنم که استفاده از فیلد AutoNumber در مواردی که با حذف رکورد روبرو بشه دیگر اعداد از شماره مسلسلی پیروی نمی کنه

فکر نمیکنم متوالی نبودن اعداد مشکلی ایجاد کنه. مهم اینه که فیلد مربوطه در جدیدترین رکورد همواره بزرگترین یا کوچکترین عدد رو (بسته به نوع تعریف) داره.
شماره ردیف رو هم میشه داینامیک مشخص کرد.

حامد مصافی
دوشنبه 07 آذر 1384, 17:56 عصر
سلام نیازی به نوشتن کوئری نسیت
هنگام باز کردن جدول از کلید واژخ ORDERBY در عبارت SQL استفاده کنید


SELECT * FROM TableName ORDERBY FieldName;

fatimah
سه شنبه 08 آذر 1384, 10:50 صبح
با سلام . از راهنمایی همه شما دوستان عزیز صمیمانه تشکر می کنم . کمک بزرگی به من کردین .
موفق باشین .....

sinpin
سه شنبه 08 آذر 1384, 14:59 عصر
سلام نیازی به نوشتن کوئری نسیت

منظورم همون دستورات sql بود (sql command)