ممانعت از ورود داده تکراری،در فرم اکسس یکی از دغدغه های کاربران در اکسس میباشد.همراه آفیس باز باشید…
قبلا در مورد یافتن و حذف داده های تکراری در اکسس صحبت کرده بودیم و حالا می خواهیم بررسی کنیم که چطور می توان از ورود داده تکراری در جداول خود داری کرد؟
خب ساده ترین روش برای جلوگیری از ورود داده تکراری این است که در زمان طراحی جدول خاصیت Index فیلدی را که می خواهیم داده تکراری قبول نکند از نوع yes(No Duplicate) در نظر بگیریم مانند تصویر زیر.
که در این صورت هر وقت کاربر قصد ورود داده تکراری در آن فیلد را داشته باشد با پیغام خطای اکسس مواجه می شود. که این حالت در تمام قسمتهای نرم افزار صادق خواهد بود چرا که شما این خاصیت را روی جدول اعمال کرده اید و هر کاری که مرتبط با جدول است انجام شود برای ورود اطلاعات از لحاظ تکراری بودن مورد بررسی قرار خواهد گرفت.
ولی شاید شما نخواهید در تمام قسمت نرم افزارتان اعمال شودو از آنجا بیشتر آپدیت جداول از طریق فرمها صورت می گیرد شما دوست دارید که که در فرم خود حالتی ایجاد نمائید که از ورود داده های تکراری جلوگیری شود. به مثال زیر توجه کنید.
فرض میکنیم جدولی داریم با نام 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 خالی بود یعنی در واقع اگر نام کالای مشابه با نامی که ما وارد کرده ایم پیدا نکرد ، ادامه دهد.
خط چهارم : در غیر اینصورت ( یعنی اگر داده مشابه پیدا شد)
خط پنجم : پیغام مناسب به کاربر نمایش بده .
خط ششم : عملیات را کنسل کن.
خب شما به راحتی می توانید از همین روش در برنامه های خود استفاده نموده از ورود داده های تکراری به حداول خود جلوگیری نمائید.
به امید خدا ادامه خواهد داشت .
با سلام این اموزش از تکرار یک فیلد جلوگیری می کنه اگه تعداد فیلد ها بیشتر و از انواع عددی و رشته ای باشد چه طور
اگر تعداد فیلد ها بیشتر و از نوع رشته ای و عددی باشد چه طور از تکرار جلوگیری میشه.
با سلام و تشکر از آموزش های خوب و کاربردی شما ، پروژه ای تهیه می کنم ، راهنمایی بفرمائید چگونه می توان از تکراری بودن انتخاب واحد دانش آموز در ترم مربوطه با مسیج باکس و یا … مطلع شد. به عبارت دیکر نباید در رکورد انتخاب واحد فرد کد دانش و کد ترم و کد درس تکرار شده باشد . مانند همیشه از لطف شما سپاسگزارم
کد دانش آموز کد ترم کد درس
1200 951 5401
1200 951 5402
1200 951 5401 اشتباه است
1200 952 5402
1200 952 5403
1200 952 5402 اشتباه است
باید از توابع Dcount و And به صورت ترکیبی استفاده کنید ،
نمونه فایلی بفرستید تو تلگرام تا براتون انجام بدم ، خیلی کار نداره ولی توضیحش اینجا یه کم پیچیدست.
با سلام در دیتا بیس من یک جدول داره که دوفیلد داره یکی کد پرسنلی و دیگری تاریخ ورود حالا می خوایم که کد و تاریخ با هم تکرار نداشته باشه و مسیج بده. یعنی در یک رکورد دو تا فیلد نباید تکرار داشته باشد. و کد یا تاریخ می تواند به تنهایی بار ها تکرار شود.
به زودی در این مورد یه آموزش قرار میدم
سلام
من یک فرم ثبت نام دارم
می خواهم تو این فرم دانش آموزی با یک نام و یک نام خانوادگی تکراری نتونه ثبت نام کنه.
تمام موارد که دیدم مربوط به تکراری بودن یک فیلد بود.
ولی من می خواهم یک دانش آموز با یک نام نام خانوادگی نتونه ثبت نام کنه
ولی نام تکراری و نام خانوادگی تکراری مشکل نداشته باشه
سلام من میخوام بدونم به چه شکل میتوان عددی را نوشت که بیشتر از 10رقم نشود یاکمتر فقط 10رقم شود
سلام ممنون از آموزشهای کاربردی تون، استفاده کردیم.
ببخشید استاد برای من خودم برنامه نویسی اکسس در حد متوسط انجام می دم ولی دوست دارم بیشتر یاد بگیرم در حد حرفه ای پیشنهاد شما چیست؟
آیا امکان یادگیری صفر تا صد تا پیشرفته از طریق این سایت وجود داره؟
ممنون
سلام بله مشکلی نیست و از لینک زیر میتونید استفاده کنید
https://officebaz.ir/access-learning/
سلام استاد بی زحمت لطف می کنیم فرمول داخل فیلم را برای جلوگیری از ورود داده عددی تکراری بنویسید ممنون
آیا این فرمول نمونه درسته
duplicate = DLookup(“codemeli”, “table1”, “[codemeli]=” & [codemeli])
سلام خسته نباشید
اگر من فرمم بصورت ساب فرم باشه و در فرم سابفرم بخام محصولاتی وارد کنم که تکراری نباشند کد به چه صورت خواهد بود؟