پارامتر کوئری در اکسس |همه آنچه که باید در موردش بدانید .
سلام به همراهان همیشگی سافت پلاس و علاقمندان کار با نرم افزار اکسس . امروز می خواهیم به سراغ یک مطلب آموزشی در نرم افزار اکسس برویم . مطلبی با عنوان پارامتر کوئری در اکسس یا در اصطلاح اصلی خودش parameter Query در اکسس .
با کلمه و اصطلاح Query که حتما آشنایی دارید .
کوئری ها از مهمترین اجزائی هستند که در نرم افزار اکسس قرار دارند .
کوئری ها را می توان به معنای “جست و جو ” و یا “پرس و جو ” در نظر گرفت .
کاری که کوئری ها می کنند دقیقا همان چیزی است که از مفهوم آنها می شود نتیچه گرفت .
کوئری شامل یکسری از کارها و فرآیندهایی است که با استفاده از آنها ما از نرم افزار اکسس ، یک یا چند سوال می پرسیم .
حالا برای این نحوه پرسش از اکسس ،راهها و روش های مختلفی وجود دارد که در این بین یکی از مهمترین این روش ها برای طرح سوال از نرم افزار اکسس کوئری ها هستند .
ما در آموزش های قبلی چند نوع از این کوئری ها را معرفی کرده و راهها و روش های مربوط به کار و نحوه تنظیمات مربوط به هر یک را با هم بررسی کردیم .
بعنوان نمونه می توانم به مطلبی تحت عنوان select Query در اکسس و آموزش کامل کار با آن اشاره کنم.
و یا در مثالی دیگر می توانم به مطلبی تحت عنوان آشنایی با کوئری های نوع کراس تب اشاره کنم .
اما امروز می خواهیم در خصوص پارامتر کوئری در اکسس با هم صحبت کنیم .
اینکه منظور از یک پارامتر کوئری در اکسس چیست؟
چگونه می توانیم با آن کار کنیم ؟
و اینکه چه جوری می توانیم تنظیمات مربوط به آن را در سریعترین حالت ممکن انجام دهیم؟
این سوالات و البته در کنار آنها یک سری نکات کاربردی در مورد پارامتر کوئری در اکسس چیزی است که می خواهیم در ادامه راجع به آن مفصلا با همدیگر صحبت کنیم .
من علیرضا شهرآئینی هستم .
عاشق برنامه نویسی و کار با نرم افزار های پایگاه داده .
پس تا پایان این آموزش همراه من باشید تا بتوانیم در کنار هم سطح دانش خود را در این زمینه بالا ببریم .
فهرست محتوا
معرفی پارامتر کوئری در اکسس
پارامتر ها در اکسس این اجازه را می دهند که در ساختار یک کوئری از شرط ها استفاده کنید بدون اینکه نیازی به باز کردن کوئری خودتان در محیط دیزاین آن داشته باشید .
اینطوری هم سرعت کار و هم دقت کار شما با کوئری ها بالاتر می رود .
طبق معمول و رسم همیشگی ما در این سایت که همه چیز را بصورت عملی آموزش می دهیم از همین ابتدا کار را با یک مثال شروع می کنیم .
به تصویر زیر نگاه کنید .
در اینجا ما یک جدول داریم شامل اطلاعات مربوط به یک سری از کتابها به همراه اطلاعاتی شامل :
نام کتاب ها
– نام نویسنده هر کتاب
– قیمت هر کتاب
و در انتها هم که تاریخ چاپ هر کتاب را داریم .
حالا می خواهیم از این جدول یکسری از اطلاعات را استخراج کنیم .
بعنوان مثال می خواهیم :
- همه کتابهای مربوط به یک نویسنده خاص را پیدا کنیم .
- اسم یک کتاب خاص را به اکسس بدهیم و از اکسس بخواهیم اکسس نام نویسنده کتاب را برای ما برگرداند .
- همه کتابهایی را در یک سال خاص – مثلا ۱۳۸۵ – یا سال های مختلف چاپ شده اند را لیست کنیم .
اینها تنها سه نمونه از اطلاعاتی است که می خواهیم و البته می توانیم از این جدول استخراج کنیم .
اما چه جوری باید این کار را بکنیم .
برای این کار چند روش را به شما معرفی می کنم .
– روش اول : استفاده از گزینه Find در محیط اکسس و پیدا کردن اطلاعات مورد نظر .
روش دوم : استفاده از قابلیت فیلتر کردن اطلاعات در محیط اکسس
روش سوم : استفاده از قابلیت پرس و جو ها و یا همان Query ها در اکسس
روش چهارم : استفاده از دستورات SQL
– روش پنجم استفاده از دستورات VBA و برنامه نویسی وی بی ای.
هر کدام از این روش ها اگر به جای خود استفاده شوند می توانند بسیار کاربردی و مفید باشند .
اما مسلما نمی توان از همه این روش ها یک انتظار خاص را داشت .
در خصوص روش های اول و دومی که در بالا به آن اشاره شد می توانید از آموزشی که در قالب یک فایل ویدیویی تهیه شده است استفاده کنید .
اما امروز می خواهیم بطور اختصاصی در خصوص روش سوم یعنی استفاده از کوئری ها برای پیدا کردن مقادیر مورد نظر خود استفاده کنیم .
پس در ادامه تمرکزمان را بر روی این موضوع می گذاریم .
ایجاد یک کوئری نوع Select
برای داشتن یک کوئری از نوع پارامتر باید کار خودمان را با ایجاد یک کوئری ساده از نوع Select شروع کنیم .
برای این کار به تب Create رفته گزینه Query Design را انتخاب کنید .
بعد از این کار محیط طراحی کوئری برای شما به نمایش درمی آید .
اولین کاری که باید کرد این است که جدولی را که قرار است در بین اطلاعات آن شروع به جستجو کنیم را به برنامه معرفی کنیم .
در گام بعد آیتم هایی را که می خواهیم در جستجوی ما لحاظ شوند را یک به یک انتخاب می کنیم .
بعنوان مثال مورد جستجوی من بصورت عبارت زیر است :
” لیست تمامی کتابهای مربوط به نویسنده ای با نام ” پائولو کوئیلو ” را برای ما جستجو کرده و در یک لیست مجزا برای ما نمایش دهد”
شکل دستوری این جستجو برای اکسس البته در محیط طراحی کوئری ما بصورت زیر خواهد بود .
نکته اصلی برای این تصویر مربوط به ردیف Criteria و یا همان شرط ما می باشد .
ما به دنبال لیستی از کتابها هستیم به شرط اینکه نویسنده آنها ” پائولو کوئیلو” باشد .
پس باید نام نویسنده موردنظر خود را در ستون مربوط به نام نویسنده و در ردیف مربوط به شرط آن درج کنیم .
حال اگر این کوئری را اجرا کنیم خروجی زیر برای ما نمایش داده خواهد شد.
برای مشاهده اطلاعات مربوط به سایر نویسنده ها نیز به همین ترتیب می توانیم عمل کنیم .
یعنی کافی است به جای نام نویسنده کنونی نام نویسنده مورد نظر خود را در این محل درج کنیم تا این بار اطلاعات مربوط به نویسنده جدید برای ما جستجو و نمایش داده شود .
این کار در عین سادگی دارای یک ایراد بزرگ است .
این ایراد این است که ما هر بار برای اینکه بخواهیم نویسنده جدیدی را در این کوئری وارد کنیم باید به محیط طراحی آن وارد شویم .
و این کار نه از لحاظ فنی و نه به لحاظ اصول طراحی یک بانک اطلاعاتی به هیچ عنوان صحیح و اصولی نیست .
پس ما باید به دنبال یک راه چاره باشیم .
راه چاره هم این است که ما باید بتوانیم کاری کنیم که نام نویسنده مورد نظر را از کاربر بگیریم و آن را در اختیار کوئری خود قرار دهیم
با این کار کوئری مورد نظر ما به درستی کار خود را خواهد کرد و خروجی مورد نظر را برای ما ایجاد می کند اما در عین حال نیازی به دسترسی مستقیم به محیط طراحی کوئری و آیتم های مورد نظر نداریم .
این راهکار همان چیزی است که از آن تحت عنوان پارامتر اسم می بریم.
پارامترها در واقع شرط هایی هستند که می توانند وارد ساختار کوئری ها بشوند .
استفاده از پارامتر ها در کوئریهای اکسس
گفتیم که یکی از ویژگی های مربوط به کوئری های نوع Select در اکسس این است که ساختار خیلی ساده ای دارند و با کمترین تنظیمات می توانیم نتیجه مورد نظر خود را از آنها بگیریم .
یکی دیگر از ویژگی های مربوط به این کوئری ها شرط هایی است که می توانیم بر مبنای آنها اطلاعات خود را مورد جستجو قرار دهیم .
اما در عین حال استفاده از این کوئری ها تا زمانی که شرط ما ثابت است کارایی خوبی دارند.
اما اگر بخواهیم هر بار کوئری خود را با یک شرط جدید اجرا کنیم وارد کردن و تغییر این شرط در وضعیت عادی ما را دچار مشکل خواهد کرد .
برای حل این مشکل ما به سراغ قابلیتی تحت عنو ان پارامتر ها می رویم .
برای اینکه بتوانیم این قابلیت را در کوئری های خود فعال کنیم به ترتیب زیر عمل می کنیم .
برای اینکه بتوانیم کوئری خود را به یک پارامتر مجهز کنیم کافی است که در محلی که می خواهیم شرط خود را وارد کنیم یک پیغام را در داخل دو علامت [ ] قرار دهیم .
برای این منظور به تصویر زیر نگاه کنید .
ما در این تصویر طی یک پیغام از کاربر می خواهیم که اسم نویسنده مورد نظر خود را برای جستجوی آیتم هایی که مشخص کرده ایم وارد نماید .
دقت کنید که ما این عبارت دقیقا در ردیف Criteria مربوط به ستون نام نویسنده ها وارد کرده ایم .
حالا اگر کوئری خود را اجرا کنیم یک کادر کوچک برای کاربر نمایش داده می شود و از کاربر نام نویسنده مورد نظر را دریافت کرده و بر مبنای آن اطلاعات مورد نظر را جستجو و نتیجه را به کاربر نمایش می دهد .
توجه کنید که ما در استفاده از پارا مترها در ساختار کوئری خود هیچ محدودیتی نداریم .
بعنوان مثال اگر بخواهیم مشخصات کتابهایی را از یک نویسنده خاص که در ماه خاصی چاپ شده اند را استخراج کنیم کوئری خود را به همراه پارامترهای مربوط به آن بصورت زیر وارد می کنیم .
در این حالت اگر کوئری خود را اجرا کنیم دو کادر به نوبت برای ما نمایش داده خواهد شد .
در کادر اول نام نویسنده را از ما می گیرد و در کادر دوم نیز ماه مورد نظر که کتاب در ان ماه چاپ شده است را دریافت می کند .
می بینید که با استفاده از پارمترها تا حد زیادی کار ما آسان می شود و می توانیم به نسبت قبل امکانات بیشتری را به کوئری خود اضافه کنیم .
اما این همه ماجرا نیست و خود این روش هم خالی از ایراد و اشکال نیست .
مشکلات مربوط به کوئری های نوع پارامتر در اکسس
اولین مشکلی که در کار با کوئری های نوع پارامتر در اکسس به آن برخورد می کنیم زمانی است که ما در ساختار کوئری خود از بیشتر از یک پارامتر استفاده کنیم .
حالا کادر مربوط به پارامتر اول برای ما نمایش داده می شود و با پر کردن اطلاعات آن و زدن دکمه Ok کادر اکسس کادر مربوط به پارامتر دوم را برای ما به نمایش می گذارد .
حالا تصور کنید که بخواهیم اطلاعاتی را که در کادر قبلی که مربوط به پارامتر اول است را تغییر دهیم .
آیا راهی داریم که به عقب برگردیم و کادر قبلی را دوباره به نمایش بگذاریم و اطلاعات جدید را در آن وارد کنیم ؟
پاسخ این سوال خیر است .
پس این از ایراد اول که غیر قابل رفع است .
ایراد و اشکال دومی که نسبت به استفاده از این روش وارد است این است که ما کاربر را مجبور می کنیم که حتما اطلاعات خود را در داخل کادر مورد نظر تایپ کند .
حالا بماند که در این بین کاربر ممکن است اطلاعات را به صورت نادرست وارد کند و یا اشتباه تایپی داشته باشد و موارد دیگری از این دست که می تواند فرآیند اجرای کوئری ما بطور کل مختل کند .
اشکال سوم این است که ما نمی توانیم اطلاعات مورد نظر را در قالب یک کمبو باکس و یا لیست باکس در اختیار کاربر قرار دهیم تا امکان انتخاب را برای کاربر فراهم کنیم .
در واقع در این حالت تنها چیزی که در اختیار ما و کاربر قرار دارد یک تکس باکس ساده است که باید به نحوی با آن سر کنیم .
اما خبر خوب این است که برای رفع همه این ایرادات و اشکال ها هم راه حلی مناسب در پیش داریم .
این راه حل استفاده از فرم ها برای وارد کردن پارامترهای مورد نظر در یک کوئری می باشد .
استفاده از فرم ها برای این کار تا حد زیادی این ایرادات را رفع نموده و دست ما را به عنوان یک طراح تا حد زیادی برای اعمال کنترل های مورد نظر باز می گذارد .
اما اینکه چگونه می توانیم از یک فرم و امکانات مربوط به آن در اجرای یک کوئری کمک بگیریم مطلبی است که در آینده و در همین سایت به آن می پردازیم .
پاسخ چند سوال پرکاربرد در مورد پارامتر کوئری ها
در ادامه برویم و چند سوال پرکاربرد در مورد پارامتر کوئری را بررسی کنیم .
سوال اول : از پارامتر ها در کدام نوع از کوئری ها می شود استفاده کرد ؟
select Query- Crosstab Query- Append Query- make table query و update query اینها کوئری هایی هستند که می شود در ساختار آنها از پارامترها کمک گرفت .
سوال دوم : آیا می شود برای پارامتر ها نوع داده خاصی را در نظر گرفت ؟
پاسخ این سوال بله است و اتفاقا این یک قابلیت خیلی مهم و کاربردی برای پارامترها به حساب می آید .
فرض کنید که در یک کوئری مشخص می کنید که کاربر نام یک نویسنده را برای جستجو به صورت پارامتر وارد کند . این یعنی اینکه کاربر باید از متن برای این پارامتر استفاده کند .
برای اینکه کاربر را وادار به استفاده از متن در این پارامتر کنید چه کاری باید انجام بدهید ؟
برای این کار باید به جای اینکه پارامتر مورد نظر خودتان را بصورت مستقیم در محیط طراحی کوئری وارد کنید ، به سراغ گزینه parameter که در تصویر زیر مشاهده می کنید بروید .
اینجا می توانید تعیین کنید که در هر پارامتر چه نوع داده ای مجاز به ورود باشد .
توضیحات تکمیلی اش را در ویدئوی این صفحه می توانید مشاهده کنید .
سوال سوم : آیا می شود پارامتر کوئری ها از وایلدکاردها استفاده کرد ؟
بله این کار شدنی است و اتفاقا استفاده از وایلد کاردها قدرت پارمتر کوئری ها را چندی برابر می کند .
بنابراین توصیه می شود که حتما با وایلدکارها آشنا شده و یاد بگیرید که چطور از انها در ساختار کوئری های خودتان استفاده کنید .
اگر دوست دارید راجع به وایلد کارها در اکسس بیشتر بدانید مطلب wild card ها در اکسس -نکات طلایی در کار با آنها را به شما پیشنهاد می کنم .
باز هم به پایان یکی دیگر از سری آموزش های مربوط به نرم افزار اکسس رسیدیم .
از اینکه تا انتهای این اموزش همراه من بودید از شما سپاسگزارم . امیدوارم که این مطلب برایتان کاربردی و مفید بوده باشد .
در پایان از شما می خواهم اگر سوالی دارید و یا نظری در مورد این آموزش دارید که می تواند این آموزش را کامل تر کند در قسمت دیدگاهها مطرح کنید تا در اولین فرصت پاسخ آن را دریافت کنید .
به امید دیدار مجدد شما در سافت پلاس .
دیدگاهتان را بنویسید