جلوگیری از ورود داده تکراری در اکسس

پیشگیری از ورود داده های تکراری و بررسی وجود دیتا در جدول های اکسس

جلوگیری از ورود داده تکراری در اکسس

ممانعت از ورود داده تکراری،در فرم اکسس یکی از دغدغه های کاربران در اکسس میباشد.همراه آفیس باز باشید…

قبلا در مورد یافتن و حذف داده های تکراری در اکسس صحبت کرده بودیم و حالا می خواهیم بررسی کنیم که چطور می توان از ورود داده تکراری در جداول خود داری کرد؟

خب ساده ترین روش برای جلوگیری از ورود داده تکراری  این است که در زمان طراحی جدول خاصیت Index فیلدی را که می خواهیم داده تکراری قبول نکند از نوع yes(No Duplicate) در نظر بگیریم مانند تصویر زیر.

جلوگیری از ورود داده تکراری
خاصیت Index در جداول اکسس

که در این صورت هر وقت کاربر قصد ورود داده تکراری در آن فیلد را داشته باشد با پیغام خطای اکسس مواجه می شود. که این حالت در تمام قسمتهای نرم افزار صادق خواهد بود چرا که شما این خاصیت را روی جدول اعمال کرده اید و هر کاری که مرتبط با جدول است انجام شود برای ورود اطلاعات از لحاظ تکراری بودن مورد بررسی قرار خواهد گرفت.

ولی شاید شما نخواهید در تمام قسمت نرم افزارتان اعمال شودو از آنجا بیشتر آپدیت جداول از طریق فرمها صورت می گیرد شما دوست دارید که که در فرم خود حالتی ایجاد نمائید که از ورود داده های تکراری جلوگیری شود. به مثال زیر توجه کنید.

فرض میکنیم جدولی داریم با نام tblProduct و فرمی داریم با نام frmProduct که دارای دو فیلد یکی با نام productId از نوع Number و دیگری با نام productName و از نوع متنی .

حال ما میخواهیم کدی بنویسیم که در فرم frmProduct قبل ورود اطلاعات بررسی کند ببیند که آیا نام وارد شده در کد کالا قبلا ثبت شده است یا نه؟

خب باید در رویداد Before Update فرم خود کد زیر را بنویسیم:

Dim Duplicate As Variant
Duplicate = DLookup(“productname”, “tblproduct”, “[productname]='” & [productName] & “‘”)

If IsNull(Duplicate) Then

Else
MsgBox “این نام قبلا ثبت شده است”
Cancel = True

End If

توضیح کد بالا:

خط اول: یک متغیر از نوع Variant که نوع انعطاف پذیر متغیر می باشد یعنی هر داده ای را درون خود ذخیره میکند . تعریف کرده ایم با نام Duplicate

خط دوم : مقدار Duplicate را برابر با کدی قرار داده ایم که از تابع Dlookup برای جستجو استفاده می کند و در واقع به اکسس گفته ایم که بگرد دنبال نام کالا در جدول tblProduct با شرط اینکه نام کالا برابر باشه با productName

خطو سوم : اگر مقدار Duplicate خالی بود یعنی در واقع اگر نام کالای مشابه با نامی که ما وارد کرده ایم پیدا نکرد ، ادامه دهد.

خط چهارم : در غیر اینصورت ( یعنی اگر داده مشابه پیدا شد)

خط پنجم : پیغام مناسب به کاربر نمایش بده .

خط ششم : عملیات را کنسل کن.

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

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

13 دیدگاه دربارهٔ «پیشگیری از ورود داده های تکراری و بررسی وجود دیتا در جدول های اکسس»

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

  2. اگر تعداد فیلد ها بیشتر و از نوع رشته ای و عددی باشد چه طور از تکرار جلوگیری میشه.

  3. با سلام و تشکر از آموزش های خوب و کاربردی شما ، پروژه ای تهیه می کنم ، راهنمایی بفرمائید چگونه می توان از تکراری بودن انتخاب واحد دانش آموز در ترم مربوطه با مسیج باکس و یا … مطلع شد. به عبارت دیکر نباید در رکورد انتخاب واحد فرد کد دانش و کد ترم و کد درس تکرار شده باشد . مانند همیشه از لطف شما سپاسگزارم
    کد دانش آموز کد ترم کد درس
    1200 951 5401
    1200 951 5402
    1200 951 5401 اشتباه است
    1200 952 5402
    1200 952 5403
    1200 952 5402 اشتباه است

    1. باید از توابع Dcount و And به صورت ترکیبی استفاده کنید ،
      نمونه فایلی بفرستید تو تلگرام تا براتون انجام بدم ، خیلی کار نداره ولی توضیحش اینجا یه کم پیچیدست.

  4. با سلام در دیتا بیس من یک جدول داره که دوفیلد داره یکی کد پرسنلی و دیگری تاریخ ورود حالا می خوایم که کد و تاریخ با هم تکرار نداشته باشه و مسیج بده. یعنی در یک رکورد دو تا فیلد نباید تکرار داشته باشد. و کد یا تاریخ می تواند به تنهایی بار ها تکرار شود.

  5. سلام
    من یک فرم ثبت نام دارم
    می خواهم تو این فرم دانش آموزی با یک نام و یک نام خانوادگی تکراری نتونه ثبت نام کنه.
    تمام موارد که دیدم مربوط به تکراری بودن یک فیلد بود.
    ولی من می خواهم یک دانش آموز با یک نام نام خانوادگی نتونه ثبت نام کنه
    ولی نام تکراری و نام خانوادگی تکراری مشکل نداشته باشه

  6. نیما محتشمی

    سلام من میخوام بدونم به چه شکل میتوان عددی را نوشت که بیشتر از 10رقم نشود یاکمتر فقط 10رقم شود

  7. سلام ممنون از آموزشهای کاربردی تون، استفاده کردیم.
    ببخشید استاد برای من خودم برنامه نویسی اکسس در حد متوسط انجام می دم ولی دوست دارم بیشتر یاد بگیرم در حد حرفه ای پیشنهاد شما چیست؟
    آیا امکان یادگیری صفر تا صد تا پیشرفته از طریق این سایت وجود داره؟
    ممنون

  8. سلام استاد بی زحمت لطف می کنیم فرمول داخل فیلم را برای جلوگیری از ورود داده عددی تکراری بنویسید ممنون
    آیا این فرمول نمونه درسته
    duplicate = DLookup(“codemeli”, “table1”, “[codemeli]=” & [codemeli])

  9. سلام خسته نباشید
    اگر من فرمم بصورت ساب فرم باشه و در فرم سابفرم بخام محصولاتی وارد کنم که تکراری نباشند کد به چه صورت خواهد بود؟

پیمایش به بالا