Autonumber در اکسس | همه آنچه که در مورد آن باید بدانید
سلام به سافت پلاس و آموزش دیگری از اموزش های اکسس خوش آمدید . موضوع آموزش امروز ما در خصوص Autonumber در اکسس است.
اگر که بخواهی با نرم افزار اکسس کار کنی ، با اصطلاحی به اسم Datatype یا ” نوع داده ” خیلی برخورد خواهی کرد . اما منظور از این نوع داده چیست ؟
اگر بخواهی در اکسس یک بانک اطلاعاتی را برای خودت طراحی و ایجاد کنی، معمولا در ابتدای کار از شما به عنوان کاربر خود یا شاید بهتر است بگویم به عنوان طراح بانک اطلاعاتی چند خواسته دارد .
اولین خواسته اکسس در حین طراحی جدول ها این است که برای اکسس تعیین کنید که قرار است در هر فیلد مربوط به آن چه نوع داده ای ذخیره شود .
در اکسس داده های مختلفی داریم . این داده ها شامل داده های نوع عددی، داده های نوع متن ، داده های نوع تاریخ و داده های نوع OLE می باشد .
اگر بیشتر و بهتر می خواهی در خصوص مفهوم نوع داده در اکسس بدانی می توانی از مطلب آموزشی زیر استفاده کنی .
در مطلب بالا همه آن چیزی را که در مورد نوع داده یا همان Data type در اکسس لازم داری و به کارت می آید را می توانی پیدا کنی .
اما در مورد مطلب امروزمان . در بین همه انواع داده ای که در اکسس وجود دارد داده ای داریم به اسم AutoNumber .
امروز می خواهیم بطور مفصل راجع به این نوع از داده در اکسس با هم صحبت کنیم یعنی داده نوع Autonumber در اکسس.
چیزهایی که با هم به آنها بپردازیم شامل موارد زیر است :
۱- اول یاد می گیری که وقتی در کار با اکسس با واژه اتونامبر برخورد می کنی منظور چیست و به چیزی اشاره می کند .
۲- دوم یاد می گیری که چطور آن را تعریف کنی یا شاید بهتر است بگویم چطور آن را در اکسس تنظیم کنی .
۳- در قدم سوم یاد می گیری که کجاها می توانی از این نوع داده استفاده کنی و کجاها اصلا نباید از آن استفاده کنی .
۴- در آخر هم چند تا نکته کاربردی و مفید در خصوص کار با این نوع داده را در اکسس یاد خواهی گرفت .
پس تا انتهای این آموزش همراه من باش تا راجع به تمامی این موارد با هم صحبت کنیم .
کار Auto number در اکسس چیست ؟
در مقاله قبلی که لینک آن را در بالای همین صفحه گذاشته ام ، به طور کامل راجع به اصطلاح نوع داده یا Data type توضیحاتی را ارائه داده ام .
با خواندن آن مقاله متوجه می شوی که ما در اکسس بیشتر از ۱۰ نوع مختلف نوع داده یا همان Data type داریم . حالا در این بین اتونامبر هم یکی از انواع آنهاست .
اما ببینیم که کار این اتونامبر چیست ؟
اگر به خود کلمه اتونامبر دقت کنی متوجه می شوی که این عبارت از دو کلمه تشکیل شده است . بخش اول Auto است که به معنای خودکار است . بخش دوم هم که Number و به معنای عدد است .
ترکیب این دو با هم به معنی عدد خودکار یا بهتر است بگویم شمارشگر خودکار است .پس این نوع از داده می تواند برای ما کار شمارش را بطور خودکار انجام بدهد .
بطور پیشفرض هم معمولا کار شمارش را از عدد یک شروع کرده و بصورت یکی یکی هم پیش می رود . یعنی در فیلد اول شماره ۱ را ایجاد می کند در فیلد دوم عدد ۲ و به همین ترتیب به پیش می رود .
البته اینکه اتونامبر به صورت یکی یکی جلو برود و کار شمارش را به ترتیب انجام دهد یک حالت پیشفرض است و اگر بخواهی می توانی کاری کنی که این اتونامبر بصورت تصادفی یا رندوم هم اعداد را ایجاد کند .
راجع به این قضیه و نحوه انجام آن بعدا با هم صحبت خواهیم کرد.
از Autonumber در اکسس کجا ها باید استفاده کرد ؟ .
اتونامبر در اکسس یک خاصیت خیلی مهم و کاربردی دارد و آن هم این است که هیچ وقت اعداد تکراری را ایجاد نمی کند .
یعنی اگر در یک جدول هزار رکورد داشته باشی و یکی از فیلدهای مربوط به آنها از نوع اتونامبر باشد هیچ دو عددی را در بین این هزار رکورد که حالت تکراری داشته باشد را پیدا نمی کنی .
همین خاصیت ایجاد اعداد غیر تکراری باعث می شود که خیلی از افراد از این نوع از داده به عنوان کلید اولیه در جدول های خود استفاده کنند .
مطلب مرتبط : مفهوم کلید اولیه یا Primary key در اکسس
شاید در نگاه اول این ایراد و اشکالی را در کار ایجاد نکند . اما اجازه بده که با هم یک مثال را بررسی کنیم تا خودت متوجه شوی که این کار چندان هم خالی از ایراد و اشکال نیست .
فرض کن یک جدول داری که در آن اطلاعات مربوط به پرسنل یک اداره را در آن ثبت کرده ای .
یکی از فیلدهای این جدول هم مربوط به کد دانش آموزی است .
حالا کاری کرده ای که کد های دانش آموزی مورد نظر از عدد ۱۰۰۰ شروع می شود .اینکه چطور می شود کاری کرد که اتونامبر مورد نظر به جای عدد یک از هر عددی که دوست داری شروع شود را در ادامه همین مطلب یاد خواهی گرفت
در شروع کار همه چیز عالی به نظر می رسد .
اما فرض کن که می خواهی بنا بر هر دلیلی کد دانش آموزی یک یا چند دانش آموز را تغییر دهی . آن وقت چه اتفاقی می افتد ؟
مثل تصویر بالا که من سعی می کنم کد مربوط به دانش آموز ردیف دوم را تغییر دهم ، هر چه تلاش کنی اکسس این اجازه را نمی دهد که بخواهی در فیلد مربوط به اتونامبر یک عدد دلخواه را وارد کنی .
پس شاید خیلی از افراد از Autonumber در اکسس به عنوان کلید اولیه در جدول خود استفاده کنند اما حالا که متوجه شدی که کجا می تواند این کار برایت ایجاد مشکل کند هیچ وقت از آن به عنوان کلید اولیه استفاده نکن
در کنار این مشکل فرض کن که می خواهی اطلاعات یک رکورد را حذف می کنی . حذف یک رکورد باعث می شود که توالی بین شماره ها از بین می رود .
فرض کن که برایت مهم است که این توالی حتما حفظ شود . برای این کار و حل این مشکل چه کار باید کرد ؟
اینها چیزهایی است که در ادامه با هم راجع به آنها مفصل صحبت خواهیم کرد .
پس تا به اینجای کار ما چند تا چیز در مورد فیلد های اتونامبر یاد گرفتیم :
1- فیلد اتونامبر بصورت خودکار شروع به شمارش می کند و بصورت یکی یکی بر مقدار قبلی اضافه می کند .
2- اگر فیلد اتونامبر حذف شود شماره فیلدهای قبلی و بعدی ریست نمی شوند و بین آنها یک شکاف ایجاد خواهد شد .
3- فیلد اتونامبر بصورت ذاتی نمی تواند تکراری باشد . حتی اگر از نوع کلید اولیه هم انتخاب نشده باشد .
4- فیلد اتونامبر بصورت خودکار و بطور پیش فرض از شماره 1 شروع می شود ولی در ادامه یاد خواهی گرفت که چطور کاری کنی که این شمارنده از عدد مورد نظر خودت شروع شود .
در ادامه با هم به بررسی یک سری سوالات مربوط به کار با اتونامبر در اکسس می پردازیم .
چطور از تاریخ شمسی در اکسس استفاده کنیم ؟
شروع اتونامبر از عدد مورد نظر خودت
گفتیم که شمارنده خودکار یا همان Autonumber در اکسس بصورت پیش فرض از عدد 1 شروع می شود . اما اگر بخواهی به جای عدد 1 آن را از عدد مثلا 1000 شروع کنی باید چه کار کنی ؟
خب برای این کار دو تا راه حل وجود دارد که در زیر هر دوی آنها را بررسی می کنیم .
راه حل اول ساده تر است .
در این روش کاری که باید انجام دهی این است که وقتی که جدول خود را ایجاد کردی فیلد مربوط به اتونامبر را انتخاب می کنی .
بعد به قسمت پایین رفته در جلوی عبارت Format هر عددی را که در نظر داری اتونامبر از آن عدد شروع شود را وارد می کنی .
مثلا من در اینجا عدد 1000 را وارد کرده ام . بنابراین وقتی که جدول خودم را اجرا کنم به جای اینکه Autonumber در اکسس از عدد 1 شروع شود از عدد 1001 شروع به شمارش می کند .
حتی اینجا یک کار جالب دیگر هم می توانی انجام دهی . آن هم این است که کاری کنی که اتونامبر یک ترکیبی از عدد و حروف را نمایش دهد .
راجع به اینکه چطور می شود این کار را کرد در ویدئوی تکمیلی این آموزش صحبت خواهم کرد .
اما برویم به سراغ روش دوم .
این روش کمی سخت تر از روش قبلی است ولی نتیجه و خروجی کار دقیقا با روش قبلی یکی خواهد بود .
در این روش اول یک جدول ایجاد می کنی و در داخل آن یک فیلد از نوع اتونامبر قرار می دهی .
فرض کن که اسم جدول مورد نظر tbl1 اسم فیلد مربوط به اتونامبر id باشد .
حالا به سراغ سربرگ create رفته و یک کوئری را ایجاد می کنی .
این کوئری را به نمای SQL می بری و کدهای زیر را در داخل آن نوشته و آنها را اجرا می کنی .
insert into tbl1 (id) values(1000);
بعد از اینکه این کدها را نوشتی و آنها را اجرا کردی حالا آنها را پاک کن و این بار کدهای زیر را در همین محیط بنویس و آنها را اجرا کن
delete * from tbl1;
اما کدهای خط اول چه کاری کرد و کدهای خط دوم چه کاری برای ما انجام دادند .
در خط اول ما مقدار 1000 را در فیلد مربوط به id وارد کردیم .
در خط دوم همین فیلد و مقداری که در داخل آن وارد کردیم را از جدول حذف کردیم .
در واقع اینجا یک جورهایی به اکسس کلک زدیم .
چون فیلد مربوط به id در جدول از نوع اتونامبر است و اکسس فکر می کند که قبلا تا شماره 1000 کار شمارش را انجام داده ولی ما 1000 شماره قبلی را حذف کرده ایم .
حالا باز در ادامه می خواهد دنباله شمارش را از همان عدد 1000 شروع کند و این می شود نقطه شروع شمارشگر که همان عدد مد نظر ماست .
توضیحات مربوط به این دو روش را می توانی در ویدئوی زیر مشاهده کنی .
چه کسی گفته اتونامبر باید یکی یکی شمارش کند ؟
این قانون Autonumber در اکسس این است که وقتی که شما یک نوع داده از نوع اتونامبر را ایجاد می کنید بصورت خودکار و یکی یکی شروع به شمارش و اضافه کردن مقادیر می کند .
اما اگر این قانون را دوست نداشتید یا اینکه نیاز داشتید که مثلا به جای یکی یکی ، دو تا دو تا یا سه تا سه تا کار شمارش را پیش ببرید آن وقت چکار باید بکنید ؟
آن وقت می توانید از فرمول ترکیبی زیر استفاده کنید .
=Nz(DMax("[ID]","[table2]"),0)+3
نکته این تابع در مورد عدد آخر آن است . در حالت بالا اتونامبر ما 3 تا سه تا اضافه می شود . اما اگر می خواهید مثلا دو تا دو تا به اتونامبر اضافه شود این عدد را با عدد 2 عوض کنید .
اما این فرمول را کجا باید بنویسم .
اول که یک جدول درست کرده و فیلد مربوط به مقداری را که می خواهید حالت شمارشگر داشته باشد را به جای اتونامبر از نوع Number قرار می دهید .
بعد یک فرم از این جدول تهیه می کنید . در فرمول بالا اسم جدول من table2 اسم فیلد مربوط به شمارنده من ID است .
حالا فرم را به محیط دیزاین برده و تکس باکس مربوط به اتونامبر را انتخاب کرده از کادر property sheet وارد سربرگ Data شده و در جلوی کادر Default Value این فرمول را درج می کنید .
با حذف یک رکورد چه بلایی سر شمارشگر می آید ؟
شما توی یک جدول 1000 تا رکورد دارید . یکی از فیلدهای مربوط به این رکوردها هم فیلد مربوط به id است که یکی یکی دارد شمارش می کند .
حالا فرض کنید که رکورد شماره 54 را حذف می کنید. حالا با حذف این Autonumber در اکسس اتفاقی برای اطلاعات می افتد .
برای خود اطلاعات قبلی و بعدی اتفاقی نمی افتد اما برای شمارشگر ما که یکی یکی پیش می رود یک اتفاق می افتد . آن هم این است که بین شماره قبی و بعدی در این حالت یک شکاف می افتد .
این شکاف بخاطر چیست به خاطر اینکه ما یک یا چند تا رکورد از این وسط را حذف کرده ایم و اکسس خودش را یا بهتر است بگوییم شمارشگرش را با این موضع بروزرسانی نمی کند .
البته این می تواند خیلی از مواقع چیز خوبی باشد . چرا ؟
مثلا فرض کنید که در یک کتابخانه 1000 تا کتاب دارید که بر اساس شماره از 1 تا 1000 در قفسه چیده شده اند .
حالا همین کتابها را بر اساس شماره در داخل اکسس هم وارد کرده اید . اما در این بین یک کتاب از کتابخانه شما گم می شود .
حالا باید این کتاب را از لیست کتابهایتان در داخل اکسس هم حذف کنید .
خوب این کار را خیلی راحت انجام می دهید . و اتفاق خاصی هم نمی افتد .
اما فکرش را بکنید که اگر Autonumber در اکسس بر مبنای این تغییرات بروزرسانی می شد آن وقت شما هم باید تمام شماره های کتابها را در کتابخانه خودتان تغییر می دادید .
اینجاست که می گوییم نباید از این نوع داده در هر جایی استفاده کرد .
اما با همه این تفاسیر اگر جایی دوست داشتید که این شمارنده ریست شود و دوباره همه شماره ها پشت سر هم قرار گیرند چند تا راه وجود دارد .
ساده ترین راه این است که به منوی File رفته و گزینه compact & Repair را کلیک کنید .
دفعه بعد که به اکسس برگردید همه چیز درست شده است .
این هم از مطلب مربوط به Autonumber در اکسس یا همان شمارشگر خودکار در اکسس .
اگر مطلب یا سوالی در مورد این آموزش دارید در بخش نظرات وارد کنید
دیدگاهتان را بنویسید