PDA

View Full Version : سوال: جلوگیری از حذف شماره هایAutoNumber که رکوردشان حذف شده



rashidianc
دوشنبه 20 مهر 1388, 11:05 صبح
با سلام . من یه تیبل در اکسس 2007 دارم که که دارای 2 فیلد یک کد که فورمتش AutoNumber قرار دادم و دیگری اسامی . حال اگر میخام اسمی از بانک اطلاعاتیم حذف کنم شماره کد مربوطه در فیلد اول هم حذف میشه ودیگه نمیتونم از اون شماره کد استفاده کنم.کار من طوری است که کدها باید بصورت پشت سر هم وسریالی در تیبل ثبت شود . آیا راهی هست که بعد از حذف یک رکورد شماره یا کد حذف نشه و بشه دوبار اون کد را استفاده کرد برای یک رکورد دیگه .ضمنن روش اصلاح را نگید چون من در اون لحضه اصلاحی ندارم وفقط میبایست رکورد را حذف کنم و حالا بعدن در صورت نیاز یک رکورد دیگه برای اون شماره یا کد حذف شده پیدا کنم . نمی دونم منظورم رو رسوندم یا نه ؟ اگه نمونه دارید لطف کنید بزارید یا راهنمایی کنید . با تشکر

h_arman
سه شنبه 21 مهر 1388, 07:50 صبح
دوست عزیز خاصیت فیلدهای AutoNumber اینه که جامعیت داده ها را مخصوصا در برنامه های تحت شبکه تضمین کنه. بنابراین بعد از حذف یک رکورد دیگه شماره اون را به رکوردهای جدید نمیده و باید هم اینطور باشه.
اما اگه شما برنامتون را طوری طراحی کردید که باید شماره هاتون پشت سر هم باشه باید این شماره ها را خودتون با کدنویسی مدیریت کنید
راه حلی که تو این لحظه به ذهن من میرسه اینه
1- یا از یه فیلد جدید بعنوان فلگ استفاده کن و به جای اینکه رکورد را خذف کنی این فلگ را تغییر بده تا رکوردهای حذف شده از حذف نشده قابل تشخیص باشند

2- یه تابع بنویس که بگرده و اولین شماره خالی را پیدا کنه و بعنوان خروجی بده. حالا موقع ثبت رکورد جدید اول این تابع را صدا زده و شماره را بدست میاری بعد از اون تو یه Insert Query استفاده میکنی

به هر حال در هر دو حالت باید فیلد را از حالت AutoNumber در بیاری

rashidianc
سه شنبه 21 مهر 1388, 08:15 صبح
با تشکر از راهنمایی شما . ولی بنده تازه کارم و با کد نویسی آشنا نیستم . اگه راه حلی به غیر از کد نویسی دارید بفرمایید یا اگر میتونید یه نمونه ساده از یه تیبل را برام بزارید . در ضمن من نمیخام بصورت دستی شماره بدم چون اونموقع هر کاربری یه نوع شماره می ده و ترتیب و سریال شماره ها بازم مشکل دار میشه .با تشکر

alirezabahrami
سه شنبه 21 مهر 1388, 08:17 صبح
با سلام . من یه تیبل در اکسس 2007 دارم که که دارای 2 فیلد یک کد که فورمتش AutoNumber قرار دادم و دیگری اسامی . حال اگر میخام اسمی از بانک اطلاعاتیم حذف کنم شماره کد مربوطه در فیلد اول هم حذف میشه ودیگه نمیتونم از اون شماره کد استفاده کنم.کار من طوری است که کدها باید بصورت پشت سر هم وسریالی در تیبل ثبت شود . آیا راهی هست که بعد از حذف یک رکورد شماره یا کد حذف نشه و بشه دوبار اون کد را استفاده کرد برای یک رکورد دیگه .ضمنن روش اصلاح را نگید چون من در اون لحضه اصلاحی ندارم وفقط میبایست رکورد را حذف کنم و حالا بعدن در صورت نیاز یک رکورد دیگه برای اون شماره یا کد حذف شده پیدا کنم . نمی دونم منظورم رو رسوندم یا نه ؟ اگه نمونه دارید لطف کنید بزارید یا راهنمایی کنید . با تشکر
با سلام
در تأييد فرمايش جناب آرمان ، استفاده از AutoNumber بعنوان كد معقول به نظر نمي رسد و براي اينكار به روش پيشنهادي ايشان عمل كن و اگر صرفاٌ ميخواهيد بعد از حذف ركورد ، شماره ها مجدداً پشت سرهم و بصورت متوالي ظاهر شوند كافي است بعد از هر بار حذف ركورد يكبار ديتابيس را كامپكت نمائيد .
موفق باشيد