[vc_row type=”in_container” full_screen_row_position=”middle” scene_position=”center” text_color=”dark” text_align=”left” overlay_strength=”0.3″ shape_divider_position=”bottom”][vc_column column_padding=”no-extra-padding” column_padding_position=”all” background_color_opacity=”1″ background_hover_color_opacity=”1″ column_shadow=”none” column_border_radius=”none” width=”1/1″ tablet_text_alignment=”default” phone_text_alignment=”default” column_border_width=”none” column_border_style=”solid”][vc_column_text]قبلا در مورد جلوگیری از ورود داده تکراری در اکسس و همچنین یافتن مقادیر تکراری در دو جدول و یا یک جدول اکسس آموزشها و مطالبی را داشته ایم ولی پرسشهای مکرر کاربران مجبورمان کرد تا آموزش دیگری در جهت تکمیل مباحث قبلی ارائه کنیم و آنهم رکورد تکراری در اکسس است و یاد بگیریم که چگونه دو رکرود اکسس را با در نظر گرفتن چند فیلد از لحاظ تکراری بودن بررسی کنیم .
رکورد تکراری در اکسس
منظور از رکورد تکراری چیست؟ فرض کنید جدولی مشابه تصویر زیر که شامل پنج ستون با نامهای کد دانش آموزی ، کد رشته ، کد ترم ، نام درس و نمره داشته باشید و برای شما تکراری بودن سه رکورد اول مهم نیست ولی اگر علاوه بر سه رکورد اول رکورد چهارم هم تکراری بود برای شما مهم باشد و کاربر اجازه ثبت چنین رکوردی نداشته باشد که بررسی تکرار در چند فیلد یک رکورد باید صورت بگیرد.
بررسی تکرار در چند فیلد یک رکورد سابفرم
توی این قسمت آموزش بررسی یک فیلد از رکورد رو از لحاظ تکراری بودن توی اون جدول با کدهای VBA می نویسم و برای بررسی داده تکراری چند فیلد از یک رکورد پیشنهاد میکنم که ویدیو آموزشی که در ادامه قرار داده شده رو حتما مشاهده کنین، فرض کنین توی جدول بالا ما بخوایم که کد دانش آموزشی تکرار نداشته باشه و در صورتی که کاربر داده تکراری وارد کرد با پیغام مناسبی مواجه بشه و از ادامه کار اون جلوگیری به عمل بیاد. قبلا با فرمول DLOOKUP این کار رو انجام دادیم و حالا می خوایم با یه روشی یه کم متفاوت یعنی با استفاده از DCOUNT این کار رو انجام بدیم . و کافیه مراحل زیر رو انجام بدیم :
1- به رویداد After Update فرم میریم و کد زید رو قرار میدیم
Private Sub Form_AfterUpdate()
If DCount(“test1”, “tbltest”, “test1=forms!frmtest!test1”) > 1 Then
MsgBox “تکرار است”
Cancel = True
End If
End Sub
2- در کد بالا جدول ما tblTest بوده و فیلد مورد نظر ما برای بررسی عدم وجود تکرار هم test1 بوده .
حالا کد بالا چکار میکنه؟ خیلی سادست کد بالا تعداد test1 رو توی جدول tblTest بررسی میکنه و اگه بالاتر از یک بود یعنی قبلا اون داده وارد شده و داده که در حال وارد کردنش هستین تکراری هست . اگر توضیحات متنی گنگ و نامفهوم بود حتما ویدیو آموزشی رو ببینید چون تو ویدیو علاوه بر توضیح این کد ، بررسی عدم وجود داده تکراری در سابفرم هم بررسی شده و امیدوارم که مفید واقع بشه .
[/vc_column_text][/vc_column][/vc_row]
سلام.این اموزش های شما که هم بصورت ویدیو و هم بصورت متنی است از منابع خارجی بهتر ومفهومی تر است.
سپاس از شما
سلام استاد بحری عزیز.
سپاس از وقتی که برای همه بچه های افیس بازی میزارید. بسیار عالی
بسیار عالی
سلام
اگر ممکنه یک نمونه فایل حاوی کدهای vba اکسس در رابطه با جستجو و شمارش در اکسس برای بنده بزارید ممنون
سلام جناب بحری اگر امکانش هست برای زمانی که تحت شبکه دو نفر دارن روی یک فرم اطلاعات وارد میکنن ، چکار کنیم که نگذاریم روی یک رکورد همزمان اطلاعات وارد کنن ….و اگر میشه در مورد خاصیت recordset آموزش قرار بدید ….ممنون
سلام ببینید در این مورد ظاهرا چاره ای نیست غیر از اینکه از از دستورات اس کی ال برای ورود داده به جدول مد نظر استفاده کنید و تو طراحی فرمها خاصیت Bound کردن جدول به فرم را فراموش کنید
سلام
جناب بحری امکانش هست همین کار در دیتا شیت انجام بشه نه اینکه در فرم ؟
با سلام
ممنون از آموزش هایی که با صرف وقت و بدون چشم داشت برای سایرین قرار میدین. سوالم اینه که چطور میشه در اکسس بعد از اینکه پیغام داده تکراری به ما میده ما اجازه ورود داده رو داشته باشیم. در اکسس هم از طریق indexed و هم از طریق validation rule میشه از ورود داده تکراری جلوگیری کرد. ولی من میخوام فقط به من اخطار بده و بعد در مواردی که لازم داشته دوباره اون داده تکراری رو بتونم وارد کنم.
با سپاس
سلام جناب بحری
ممنون از آموزش های رایگانتون.
یک سوال:چطور می توان تعداد رکورد های تکراری را شمرد؟
به عنوان مثال:
در یک دیتابیس می خواهیم در یک گزارش تعداد افرادی که نام آنها(رکوردی که نام آنها در آن ذکر شده است) از یک عدد خاص(که می تواند متغییر باشد) بیشتر باشد لیست شود.
سلام آقای بحری باتشکرازآموزش های ویدئویی شمابسیارمفیدبودن بنده بسته آموزشی انبارداری صفرتاصدازسایت شماتهیه نمودم وبسیاراستفاده بردم
اگه ممکن است بنده دردونکته راهنمایی بفرمائید:
درحال ساخت برنامه ای هستم که شماره بایگانی،تاریخ،نوع خودرو،نوع حمل،شماره خودرووبقیه موارددارد
-کددستوری نحوه شناسایی شماره تکراری خودرودرهمان تاریخ وپیامی مبنی برمشخص شدن شماره قبلی خودرو درفلان شماره بایگانی واجازه باتوجه به تکرارثبت یاعدم ثبت اعمال شود
قابل توجه تکرارشماره خودرودرتاریخ روزقبل یابعدمشکلی نیست فقط درهمون روز(تاریخ)بایداعلام شود.
سلام
خب شما باید شرط تاریخ امروز رو هم به Dcount که استفاده میکنید به کار ببرید ، یعنی باید چند تا شرط همزمان برای بررسی تکرار به کار ببرد
اگر نتونستین ، تیکت پشتیبانی بزنید تا بررسی کنم
سلام
باتشکرازاستادبحری عزیز
همانطورکه فرمودیدازچندشرط همزمان استفاده کردم ومشکل حل شد
فقط میمونه درپیام اعلام شده شماره بایگانی اون خودروتکراری قبلی واجازه ادامه یاعدم اجازه !(گزینه بله ادامه ثبت تکراری وخیر عدم رفتن به رکوردبعدی)
چون دریک روزاحتمال ثبت ۲۰۰خودروباشه
ممنون میشم راهنمایی بفرمائید.
سلام جناب بحری ضمن عرض خسته نباشید
اگه ممکن است نحوه چاپ رکورد جاری درفرم اکسس راآموزش بدید ممنون میشوم
من در سابفرم از کمبو باکس استفاده می کنم با انتخاب داده های آن کمبو ، کد مذکور اصلا کار نمی کند
با تشکر
با سلام
جناب استاد بحری با این کد برنامه فقط اعلام میکنه که داده ی تکراری وجود داره ولی در هر حال ثبت میشه.ایا میشه کدی نوشت که به هیچ عنوان اجازه ثبت در جدول رو نده و برنامه eror بده
ممنون میشم راهنمایی کنید
از اموزش های بی نظیرتون هم ممنونم واقعا کمک میکنه به یادگیری
سلام استاد عزیز
ببخشید کلاسهای آنلاین هم دارید