View Full Version : رفع مشکل جستوجو و فیلتر در فرم از نوع Onchange
m2326499
پنج شنبه 13 شهریور 1393, 10:09 صبح
سلام مجدد بهمه اساتید گرامی :خجالت:
در نمونه ای که گذاشتم ، یک فرم و چند تکست باکس دارم و میخام بدون ساخت کویری و بمحض تایپ حرف درون تکست باکس ، شبیه اون توی فرم فیلتر بشه ...
متاسفانه نمونه هایی که تا الان دیدم همه به یه نحوی جوابگو نبودند و اغلب در فیلتر فیلدهای تاریخ و Requry آیتمهای Null مشکل داشتند .
ممنون میشم راهنمایی بفرمایید
متشکرم
m2326499
پنج شنبه 13 شهریور 1393, 19:31 عصر
من نمونه رو با کد و ماژول اینجا قرار میدم ولی یه سری مشکلات هنوز داره
خودتون چند بار توی فیلدها سرچ کنید متوجه میشید .... لطفا اگه کسی بیشتر اطلاعات داره ، زحمتشو بکشه و اصلاح کنه
متشکرم
m2326499
یک شنبه 16 شهریور 1393, 10:19 صبح
سلام
زیاد مهم نیست این فرمول و روشی که من گذاشتم یا یه فرمول دیگه باشه
لطفا اگه کسی به روش دیگه ای هم بلده ممنون میشم همکاری کنه
با تشکر
amp_1356
دوشنبه 17 شهریور 1393, 11:28 صبح
سلام
من دو روش دیگه برای جستجو انجام دادم که گذاشتم. یکی onchange و یکی هم AfterUpdate
123194123195
m2326499
دوشنبه 17 شهریور 1393, 12:49 عصر
سلام
تا اینجا همه چی شبیه کار خودمه ولی با یه فرمول دیگه
من توی نمونه شما بعضی از داده ها رو = null کردم
ممنون میشم اصلاح بفرمایید
m2326499
سه شنبه 18 شهریور 1393, 11:37 صبح
من امروز یک فرم جدید با یه روش جستوجوی جدید و البته ساده رو میزارم
تا الان متاسفانه کسی نتونسته مشکل نمایش Null بودن داده رو حل کنه
ممنون میشم از بزرگواران روی این نمونه همتی بفرمایند - باتشکر فراوان
amp_1356
سه شنبه 18 شهریور 1393, 11:50 صبح
سلام
متاسفانه این مشکل خود من هم هست و این روش جستجو(بدون کوئری) این مشکل رو داره. در نمونه اصلاح شده من با استفاده از ساب فرم جستجو رو انجام دادم ولی باز هم با داده های null مشکل داره
123243
amp_1356
سه شنبه 18 شهریور 1393, 13:22 عصر
سلام دوباره
یه روش دیگه هم پیدا کردم . البته این روش داده ها رو فیلتر نمی کنه فقط پیدا می کنه با داده ای null هم مشکلی نداره. ملاحظه کنید ببینید خوبه
123249
m2326499
سه شنبه 18 شهریور 1393, 17:57 عصر
ممنونم دوست عزیز بخاطر همکاریتون . این روش شما بیشتر حالت Find رو داره تا Filtring
من مطمئنم این مشکل راه حلی داره .... امیدوارم دوستان مارو از الطاف خود مایوس نکنند
AbbasSediqi
پنج شنبه 20 شهریور 1393, 20:31 عصر
دوست عزیز نمونه درست شد در کالا لحاظ شده
یا حق امیدوارم مورد تاییدتون باشه
m2326499
پنج شنبه 20 شهریور 1393, 22:17 عصر
سلام خدمت شما بزرگوار و ممنونم بابت راهنماییتون . فرمول شما نسبتا کامل و دقیق هستش
ظاهرا در فیلد kala درست کار میکنه چون هیچ خانه خالی وجود نداره ولی اگه دقت بفرمایید و همین کد رو مثلا توی code اعمال بفرمایید ، چون خانه خالی در این فیلد موجوده ، با یکبار فیلتر میبینید متاسفانه همچنان جزئی از مشکل هنوز پابرجاست
بینهایت ممنونم از لطفتون دوست عزیز
m2326499
جمعه 21 شهریور 1393, 19:46 عصر
فکر کنم این کد بتونه مشکل رو حل کنه . از دوستانی که اطلاع بیشتر دارند تقاضا دارم همیاری کنند
If Text10 & "" = vbNullString Then
منظورم اینه که : اگه این شرط ایجاد بشه ، و بخواهیم فقط فیلد Code رو از حالت فیلتر خارج کنیم ، بعدش چه کدی رو باید بنویسیم ؟؟
Rasool-GH
یک شنبه 23 شهریور 1393, 08:55 صبح
سلام
متاسفانه فرصت ندارم بقیه پستها رو بررسی کنم . مطابق وعده قبلی این نمونه رو اماده کردم
این نمونه رو ببینید ایا مشکل حل میشه یا نه . در صورتی که حل نشد خبر بدین .
m2326499
یک شنبه 23 شهریور 1393, 11:02 صبح
سلام
متاسفانه فرصت ندارم بقیه پستها رو بررسی کنم . مطابق وعده قبلی این نمونه رو اماده کردم
این نمونه رو ببینید ایا مشکل حل میشه یا نه . در صورتی که حل نشد خبر بدین .
سلام و متشکرم از اینکه لطف میکنید وقت میزارید و جواب میدید
نمونه شما بله از طریق کویری درسته و من این نمونه رو قبلا هم داشتم ...
ببینید من دوتا فایل از طریق VBA دارم و مشکلشون اینه که یا با فیلتر رکوردهای Null مشکل دارن یا با یکبار فیلتر ، از نمایش اونها صرف نظر میکنه
و فکر میکنم با یکی از شرطهای زیر مشکلم حل میشه اما چطور و کجا ؟؟؟ من بی اطلاعم
نمونه ها و کد ها :
If IsNull(Me.Text10) Then
یا
If Text10 & "" = vbNullString Then
amp_1356
یک شنبه 23 شهریور 1393, 12:54 عصر
سلام
فکر کنم حل شد. فایل ضمیمه رو ملاحظه کنید. باداده های null مشکل نداره
123437
Rasool-GH
یک شنبه 23 شهریور 1393, 13:35 عصر
فیلتر کردن داده های خالی همیشه دردسر ساز بوده یکی از دلایلش هم اینه که اکسس چندین نوع داده خالی رو پشتیبانی میکنه .
البته کار شما هنوز به این مرحله نرسیده . ولی بعد از حل مشکل فعلی به این موضوع خواهید رسید .
به هر صورت کار کردن با کوئری سبکتره و ادیتش در اینده راحت تره . البته در صورت مسلط بودن در کد نویسی این راه بهتره.
m2326499
یک شنبه 23 شهریور 1393, 15:27 عصر
سلام
فکر کنم حل شد. فایل ضمیمه رو ملاحظه کنید. باداده های null مشکل نداره
123437
نه دوست عزیز ... متاسفانه جواب نداد
بهتره که دیگه دنبال راه حل نباشم
از تمام عزیزانی که تا به امروز محبت کردن و راهنمایی و راه حل ، ارائه دادند ممنون و متشکرم
آرزوی توفیق و سلامتی برای شما بزرگواران
Rasool-GH
یک شنبه 23 شهریور 1393, 23:02 عصر
کد سبک و خوبی بود .
ببینید ایا خواسته مورد نظر شما بر اورده شده یا نه
Rasool-GH
یک شنبه 23 شهریور 1393, 23:36 عصر
یک سوال ضمنی هم دارم . دوستان عملکرد یک تابع رو داخل help اکسس چجوری جستجو میکنید ؟
مثلا تابع IIF رو چطور سرچ میکنید ؟
m2326499
دوشنبه 24 شهریور 1393, 13:01 عصر
کد سبک و خوبی بود .
ببینید ایا خواسته مورد نظر شما بر اورده شده یا نه
دروووووووووووووووووووووود فراوان خدمت دوست عزیز و استاد گرامی Rasool-GH :قلب:
بسیااااااااااااااااااااار هم عاااااااااااااااااااااااا اااالی و درست :تشویق:
این دقیقا همون چیزی بود که دنبالش بودم ولی نهایت بدست شما حل شد
نمیدونم چطوری تشکر کنم .... بینهایت سپاسگذارم و امیدوارم درتمام مراحل زندگی همواره موفق و سلامت باشید
:قلب::تشویق::قلب:
Rasool-GH
دوشنبه 24 شهریور 1393, 19:14 عصر
سلام
با توجه به رویه تابع سرچ بهتره که کد تابع رو تغییر بدین در غیر این صورت نوشتن کد یک سرچ تو در تو بسیار مشکل خواهد شد
کافیه یک یا هر تعداد مورد نیاز ارگمان به تابع اضافه کنید. تغییرات رو خودتون در تابع اعمال کنید
البته من در کد نویسی مهارتی ندارم . ولی اون حلقه For داخل تابع بی استفاده است
موفق باشید
Rasool-GH
دوشنبه 24 شهریور 1393, 19:28 عصر
ضمنا یک مورد دیگه اینکه در این رویه شما کل جدول رو لود میکنید و این در جداول بزرگ باعث کند شدن برنامه میشه و در صورتی که اگر با کوئری کار کنید تعداد زیادی از این مشکلات حل میشه و لزوما کوئری رو لازم نیست به صورت معمولش بنویسید و میتونید با کد نویسی هم کوئری تشکیل بدین
m2326499
دوشنبه 24 شهریور 1393, 21:42 عصر
ضمنا یک مورد دیگه اینکه در این رویه شما کل جدول رو لود میکنید و این در جداول بزرگ باعث کند شدن برنامه میشه و در صورتی که اگر با کوئری کار کنید تعداد زیادی از این مشکلات حل میشه و لزوما کوئری رو لازم نیست به صورت معمولش بنویسید و میتونید با کد نویسی هم کوئری تشکیل بدین
سلام .... ممنون بابت این اطلاعات ارزشمند
اتفاقا منم نمیخام از این رویه استفاده کنم ولی چون در کویری از ارگومان [ ] استفاده میشه این برام مشکل سازه
چون من از Navigation Form استفاده میکنم نه Form معمولی و این باعث میشه باهر کاراکتری که اضافه یا ویرایش میکنم ، مدام پیغام بده
حالا اگه بشه معادل کدهای همین کویری رو با استفاده از دستورات Sql در بازه Select Like "*" Where یا غیره بدست اورد ، طبیعتا خیلی از مشکلات نیز حل خواهد شد
امیدوارم در اینده بتوانید در رابطه با این مشکل هم ، مارو یاری کنید
متشکرم
Rasool-GH
دوشنبه 24 شهریور 1393, 21:51 عصر
در واقع کوئری ها کدهای sql هستند که به اون شکل نمایش داده میشن . به طور مثال این کد مربوط به کوئری اولین نمونه است که من فرستادم
SELECT Table1.*, Table1.CodeFROM Table1
WHERE (((Table1.Code) Like "*" & [Forms]![frmSearch]![Text10h] & "*"));
با
Navigation Form کار نکردم و اشنایی ندارم . ولی به نظرم تمام ارگومانها با هم همخوانی دارند و نباید تداخلی پیش بیاد
m2326499
دوشنبه 24 شهریور 1393, 21:58 عصر
بسیار متشکر و سپاسگذارم
انشالله از فردا صبح ، با این روش برنامه رو تغییر میدم
سلامت ، سربلند و سرافراز باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.