ورود

View Full Version : سوال: حذف رکوردهای تکراری



michkadol
چهارشنبه 14 دی 1390, 08:45 صبح
با سلام و خسته نباشید
دوباره یه مشکل برای من و یک زحمت برای شما

در نمونه زیر چطوری میشه رکورهای که در کوئری
Find duplicates for moshakhasat
لیست میشه را از هر رکورد تکراری یک رکورد رو نگه داره و بقیه رکوردهای تکراری را حذف کنه

emami.sie
چهارشنبه 14 دی 1390, 09:12 صبح
من این نمونه رو از داخل همین سایت دانلود کردم...
مشکلتون رو حل میکنه
یا علی

michkadol
چهارشنبه 14 دی 1390, 12:31 عصر
دوست عزيز ممنون از کمکت
ولي مشکلي هست سرعت اجراي اين برنامه پايينه
تو ديتابيس من بايد حدود 3000 رکورد رو سرچ کنه و تکراري ها رو که حدود 700 تا است رو بايد حذف کنه
و تعداد فيلدهاي تيبل من زياده که خودش يک دردرسر ديگه اي را براي استفاده از نمونه شما به همراه داره


دوستان لطفا از طریق کوئری رو کمکم کنید ممنون میشم

emami.sie
چهارشنبه 14 دی 1390, 12:34 عصر
پیشنهاد من به شما اینه که ابتدا کل اطلاعات جدولتون رو به اکسل Export کنید بعد اونجا تو تب Data یه گزینه هست به نام Remove Duplicate، که باید کل ستون ها رو انتخاب و بعد اون گزینه رو بزنید. (اکسل 2007)
بعد از این کار اطلاعاتتون رو به فایل access برگردونید. یه روندی هم اتخاذ کنید که از این به بعد توی دیتابیستون اطلاعات تکراری وارد نشه...
خیلی راحت، خیلی سریع
یا علی

emami.sie
چهارشنبه 14 دی 1390, 12:38 عصر
ضمنا یادم رفت اینو بگم که مطمئن باشید سرعت کوئری، از کدنویسی خیلی کمتر خواهد بود و حتی احتمال هنگ کردن برنامه در تعداد بالای رکورد هم هست... (البته من اینو براساس تجربه ای که داشتم میگم)
موفق باشید
یا علی

mj_bayati
چهارشنبه 14 دی 1390, 18:28 عصر
تو سربرگ Create در بخش Queries یک Query Wizard وجود داره
سومین گزینه در اکسس 2010 دقیقاً همون چیزیه که شما میخواین
اگه در وسط کار دستگاهتون هنگ کرد اصلاً هول نشید!! :عصبانی++:
آرامش خودتون رو حفظ کنید!! :متعجب:
به زودی بعداز اتمام کار خودش از حالت هنگ خارج میشه... :تشویق:
وقتی حجم دیتابیس زیاد باشه یک هنگ موقت (شوک) به اکسس دست میده
ولی اون ظاهریه و بعداز اتمام کار از حالت شوک خارج میشه و پاسخ میده
موفق باشین

michkadol
چهارشنبه 14 دی 1390, 18:36 عصر
ببینید تو برنامه من مراحل زیر باید به ترتیب اجرا بشه
1- اطلاعات رو کاربر باید توسط فایل اکسل ایمپورت کنه(مثلا به عنوان جدول1)
2-بعد میخوام با اجرای یک کوئری اطلاعاتی که در (مثلا جدول2) موجود است رو اپدیت کنه
3-سپس رکوردهای رو که اپدیت شده رو از جدول1 حذف کنه
4- و رکوردهای که در جدول 1 هست ولی در جدول 2 نیست رو به جدول 2 اضافه کنه
تا رکوردی دو بار ثبت نشه
5-با این حال اگه رکوردی دوبار ثبت شد رکوردهای اضافه رو که عینا مشخصاتش یکی رو از جدول2 حذف کنه

الان گیر من تو مرحله 3 و 5
(نمونه ای رو هم که در پست اول پیوست کردم فقط یه مثال و برنامه من این نیست)

حال دوستان با توضیحاتی که دادم لطفا کمکم کنید چون خیلی گیر این مسئله هستم

mj_bayati
چهارشنبه 14 دی 1390, 19:14 عصر
برای مرحله 5 میتونی از همون ویزارد کوئری استفاده کنی
اما برا مرحله 3 باید خودت یه کوئری بنویسی یا اینکه بیخیالش شی تا مرحله 5 خودش پیدا بشه

البته یه دونه کوئری ویزارد سوم (Find Duplicates) رو برو
بعد با دقت نگاه کن ببین چیکار میکنه
فک میکنم خیلی راحت بتونی خودت برا نیازت شبیه سازی کنی

حالا میخوای یه نمونه ساده از کارت بساز ببینم میتونم کاری بکنم؟
چون دقیق متوجه منظورت نشدم
البته زیادم امیدوار نباش!! :شیطان:

michkadol
چهارشنبه 14 دی 1390, 19:45 عصر
نمونه رو میزارم تا دوستان رو نمونه کمک کنند
درضمن لطفا در 2003 حل و فصلش کنین عجله ایه لطفا
مچکرم