ورود

View Full Version : شماره رکورد مورد نظر



look20
دوشنبه 02 فروردین 1389, 20:38 عصر
با سلام می خواستم شماره رکورد مورد نظرم رو بدست بیارم مثلا اگه رکورد دوم باشه توی یه caption یا textbox بنویسه 2 ولی جستجو کردم چیزی پیدا نکردم البته نمونه مشابهی هست ولی کل رکورد ها رو میاره مثلا اگه 20 تا رکورد داشته باشیم مینویسه 20
ولی همونطور که گفتم چطور شماره رکوردی که در حال نمایش هست رو نشون بدم ممنون میشم در ضمن اگه تاپیکی راجع به این هست که من پیدا نکردم لطف کنید معرفی کنید با تشکر

اوبالیت به بو
چهارشنبه 04 فروردین 1389, 12:22 عصر
حتما یه فیلد به نام ID به جدولتون اضافه کنید که Auto Increment باشه. (قانون 1 نرمال سازی جداول)

بعد که ADO روی رکورد اشاره می کنه می تونید مقدار فیلد ID رو در یک برچسب نشون بدید:


lblID.Caption = ADODC1.Recordset.Field["ID"];


در ADODB هم به همین صورت هست

look20
چهارشنبه 04 فروردین 1389, 16:42 عصر
حتما یه فیلد به نام ID به جدولتون اضافه کنید که Auto Increment باشه. (قانون 1 نرمال سازی جداول)

بعد که ADO روی رکورد اشاره می کنه می تونید مقدار فیلد ID رو در یک برچسب نشون بدید:


lblID.Caption = ADODC1.Recordset.Field["ID"];
در ADODB هم به همین صورت هست
ببخشید ارور میده روی id این فیلد رو همون طور که گفتید اضافه کردم فقط توی این کدی که شما نوشتید روی id ارور میده چرا؟ نمیدونم

HjSoft
چهارشنبه 04 فروردین 1389, 16:58 عصر
lblID.Caption = ADODC1.Recordset.Field("ID");

look20
چهارشنبه 04 فروردین 1389, 17:36 عصر
این مشکل حل شد ولی توی رکورد اولین رکوردم رو برابر 2 میزاره پس اگه یکی از رکورد هام پاک بشه اونوقت این عدد به ترتیب بدست نمیاد مثلا من رکورد اول رو پاک کردم حالا رکورد اول من 850105 که id اون برابر2 اگه من رکورد پنجم حذف کنم اونوقت من دیگه عدد 5 ندارم و ...
منظورم از اینکه خواسته بودم رکورد مورد نظرم رو نشون بده اینکه می خوام هر رکورد الان توشم بگه چندیم رکورد جدوله منه و اگه حذف شد مثلا رکورد 5 رو حذف کردم رکورد 6 بشه رکورد 5 جدول من

HjSoft
چهارشنبه 04 فروردین 1389, 18:00 عصر
این قابلیت رو بهش می گن AutoNumber که بانک اطلاعات یک شناسه خاص رو برای رکورد در نظر می گیره و این یک وجه تمایز رکورد با سایر رکورد ها ی مشابه می باشد یعنی Primary Key ( کلید اولیه ) و شما نمیتونید یک شماره یک رکورد مثلا 6 را با 5 جایگزین کنید . این موضوع قبلا سوال خودم بوده و روش زیاد بحث شده . برای اینکه بخوای عدد دقیق بدی باید مدام جدول رو شماره گذاری کنی . اگر برای گزارشسازی میخوای میتونی از کریستال ریپورت که این قابلیت رو داره استفاده کنی .


موفق باشید ./

look20
شنبه 08 خرداد 1389, 11:48 صبح
ببخشید یعنی راهی وجود ندارد؟

Dr.Bronx
شنبه 08 خرداد 1389, 16:16 عصر
شما اگر می خواهید که شماره رکورد رو داشته باشید فرق می کنه که بخواید شماره ردیف رو داشته باشید

شماره رکورد رو با : adodc1.recordset.recordcount هم می تونید به دست بیارید

اما اگر شماره ردیف رو می خواید باید از AutoNumber استفاده کنید که خب مشکلات خاص خودش رو در زمان حذف شدن رکوردها داره .

موفق و موید باشید ./

M.T.P
سه شنبه 22 تیر 1389, 12:40 عصر
از Rs.AbsolutePosition برای رکورد جاری استفاده کنید ، البته قبل از Open کردن Rs باید CursorPosition رو برابر با Client کنید.

skh1300
سه شنبه 22 تیر 1389, 15:46 عصر
یه راه هم من به نظرم میرسه یه فیلد دیگه بزاری و تعداد رکورد ها را بدست بیاری بعد بگی داخل فیلد از 1 تا تعداد رکورد ها شماره گذاری کنی برای پاک کردن هم میتونی این کار را انجام بدی
به این ترتیب که اگه 20 تا رکورد داری بیاد از 1 تا 20 داخل این فیلد قرار بده(به ترتیب)
حالا اگه یه رکوردی اضافه یا کم شد بیاد از اول این شماره گذاری را انجام بده

ولی این کار سرعت برنامه را میاره پاییین بلاخره این هم یه راه حل بود
موفق باشی

ENG_Torshani
سه شنبه 22 تیر 1389, 17:40 عصر
ado.maxrecords

zohhal233
جمعه 25 تیر 1389, 09:17 صبح
مکان رکوردست
با سلام ،من هم چنین مشکلی دارم یعنی وقتی میخواهم در یک جعبه لیست مقداری را انتخاب میکنم کنترل داده به مکان ان رکوردست پرش کند تا بتوانم از مقدار فیلد دیگر معادل ایتم انتخاب شده از جعبه لیست استفاده کنم.
موفق و مو ید باشید.

محسن شامحمدی
جمعه 25 تیر 1389, 22:25 عصر
دوستان چرا این قدر خودتونو اذیت می کنید
نه نیازی به فیلد Id داره و نه primary key و ...
می تونید با کد زیر
MsgBox ado1.Recordset.Bookmark
ببینید که الان رکورد چندم هستید.
توجه : این روش هیچ نیازی به فیلد اضافی ندارد