نظر سنجی در مورد کانال تلگرام و انجمن موبایلی خانه اکسس ایران
با سلام
با توجه به راه اندازی کانال تلگرامی خانه اکسس ایران دوستان می تونند با استفاده از لینک زیر در کانال تلگرام خانه اکسس عضو شده و از اخبار سایت مطلع شوند .
تفاوت کانال با گروه پرسش و پاسخ 200 نفره تلگرامی این است که اطلاع رسانی تنها به صورت یکطرفه و از طریق سایت می باشد .
لذا از دوستانی که نظری در خصوص این کانال دارند که فکر می کنند ما رو در رسیدن هر چه بهتر به اهداف سایت یاری می کند خواهشمندیم که در این مطلب نظراتشون رو عنوان کنند .
عضویت در کانال اطلاع رسانی خانه اکسس ایران
عضویت در گروه تلگرام خانه اکسس ایران با ظرفیت محدود 200 نفر ( پرسش و پاسخ آنلاین موبایلی )
آموزش VBA در آفیس
آموزش ساخت فیلتر های پیچیده با استفاده از تابع EasyFilter در اکسس
-
اين امكانات به هنگام بستن منو و ريبون ها در برنامه اي كه تحويل كاربرنهايي مي گردد ، غير فعال مي شوند و استفاده از آنها ممكن ولي با مشكلاتي همراه مي باشد .
-
تغيير زبان اين امكانات براي فارسي زبانان تقريبا كاري بسيار مشكل مي باشد .
-
كنترل هاي فيلتر و جستجو در درون يك فرم اصلي قرار مي گيرد كه اين فرم به اين منبع داده اي متصل نيست و كليه كنترل ها به صورت unbound مي باشند .
-
در درون فرم اصلي بايستي يك Sub Form قرار گيرد كه در اين سابفرم فيلدهاي مورد جستجو قرار مي گيرد . و Sub Form به جدول يا پرسش خاصي متصل مي باشد و كنترل ها درون آن نيز به فيلدها bound شده اند . لازم به ذكر است كه اين Sub Form مي تواند در هر نمايي اعم از Datasheet , Single Form , Continuous Forms باشد .
-
هر يك كنترل هاي روي فرم اصلي را كه قرار است به عنوان شرط فيلتر يا جستجو استفاده شود طبق قاعده زير نام گذاري نماييد . (خاصيت name كنترل ) :
نام كنترل از سه قسمت تشكيل مي شود :قسمت اول (پيشوند ) : يك عبارت سه حرفي است كه نوع فيلد مورد جستجو را تبيين مي كند .اين عبارت سه حرفي بايستي قطعا يكي از موارد ذيل باشد .Str : براي فيلدهاي متنيVal : براي فيلدهاي عدديBol : براي فيلدهاي BooleanMul : براي فيلدهاي multivalueBt1 : براي فيلدهاي بازه اي عددي ( از عدد )Bt2 : براي فيلدهاي بازه اي عددي ( تا عدد )Dt1 : براي فيلدهاي بازه اي تاريخ ( از تاريخ )Dt2 : براي فيلدهاي بازه اي تاريخ ( تا تاريخ )قسمت دوم (نام فيلد ) : نام فيلدي است كه قرار است مورد جستجو قرار گيرد .قسمت سوم (پسوند ) : عبارت ثابت flt مي باشد كه كنترل را براي تابع قابل شناسايي مي كند كه باعث مي شود از مقادير درون اين كنترل در ساخت عبارت فيلتر استفاده شود .لازم به ذكر است كه قسمت اول ، دوم و سوم با استفاده از كاراكتر underline يا همان “_” ، بايستي به هم متصل شوند .به طور مثال اگر ما قصد ايجاد فيلتر بروي يك فيلد با نام ID كه از نوع عددي مي باشد داشته باشيد نام كنترل بايستي دقيقا عبارت “val_id_flt” باشد .در مثال فوق اگر نوع فيلد متني باشد بايستي نام كنترل عبارت “str_id_flt “ باشد .مثال ديگر : در صورتي كه بخواهيد از دو تكست باكس براي تعيين بازه زماني در فيلتر استفاده كنيد و نام فيلد مورد جستجو در جدول مثلا invoice_date و از نوع date& time باشد ، بايستي خاصيت Name يكي از كنترل هاي متني را برابر با “dt1_invoice_date_flt” و خاصيت name دومي برابر با “dt2_invoice_date_flt” قرار دهيد .لازم به ذكر است در صورتي كه فيلد تاريخ شما در جدول از نوع عددي باشد بايستي از پيشوند عبارت bt1 و bt2 به جاي dt1 و dt2 استفاده نماييد .4 – آخرين قدم ساخت دكمه "فيلتر" و دكمه "حذف فيلتر" مي باشد :دكمه فيلتر : يك دكمه با نام فيلتر ايجاد نماييد و دو خط كد زير را در خاصيت on click آن درج كنيد :Me.SubForm_Name.Form.Filter = Easy_filter_all(“SubForm_RrecordSource”)Me. SubForm_Name.Form.FilterOn = Trueلازم به ذكر است كه به جاي عبارت SubForm_Name در كد فوق بايستي نام سابفرم استفاده شده در فرم اصلي درج گردد . ( خاصيت name كنترل subform موجود )همچنين به جاي عبارت SubForm_RrecordSource در كد فوق بايستي نام جدول يا پرسشي جايگزين شود كه سابفرم به آن متصل مي باشد . ( عبارت sql در اينجا قابل پشتيباني نبوده و بايستي تبديل به پرسش شده و سپس ازنام پرسش استفاده شود . )دكمه حذف فيلتر : يك دكمه با نام حذف فيلتر ايجاد نماييد و دو خط كد زير را در خاصيت on click آن درج كنيد :Me. SubForm_Name.Form.FilterOn = FalseR_remove = Easy_remove_filter_all()در پايان ذكر اين نكته ضروري به نظر مي رسد كه پروسه به ظاهر پيچيده فوق تنها شامل چهار خط كد vba و يك نام گذاري مناسب روي فيلدها بوده و به محض يك بار استفاده ، بسيار ساده و كاربردي خواهد بود .همچنين براي اضافه كردن يك ديگر فيلد براي جستجو ، كاربر كافي است كه فيلد مورد نظر را به سابفرم اضافه نموده و كنترل متناظر با آن فيلد را با يك نام گذاري مناسب در فرم اصلي قرار دهد . و بدون كدنويسي جديد يا تغيير كدنويسي هاي موجود به هدف خود برسد .در اين روش با توجه به محدوديت تعداد كاراكتر خاصيت فيلتر كه 1024 كاراكتر مي باشد با يك نامگذاري مناسب ( با توجه به استفاده از پيشوند و پسوند بهتر است نام فيلدها كوتاه تر در نظر گرفته شود . ) روي فيلدها مي توان از 30 الي 40 فيلد براي فيلترينگ همزمان استفاده كرد .لطفا براي درك نحوه استفاده ازاين تابع پس از مطالعه اين مقاله ، فيلم آموزشي تهيه شده را نيز ملاحظه نموده و سپس فايل پيوست را كه به صورت عملي اين روش در آن پياده سازي شده ، دانلود و مرور نماييد .