طراحی Query در مایکروسافت اکسس
کوئری (Query) چیست؟
کوئری ها (پرس و جو) روش جستجو و پردازش داده از یک یا چند جدول در مایکروسافت اکسس هستند.
کاربرد کوئری در مایکروسافت اکسس
کوئری ها بسیار قدرتمندتر از جستجوهای ساده یا فیلترهایی هستند که ممکن است برای یافتن داده ها در یک جدول استفاده کنید. زیرا کوئری های می توانند به طور همزمان بر روی چندین جدول کار کنند. برای مثال، در حالی که در جدول مشتریان (Customer) برای پیدا کردن نام مشتری جستجو می کنید، می توانید به طور همزمان داده های جدول سفارشات را برای پیدا کردن سفارشات صادر شده در هفته جاری نیز فیلتر کنید.
توجه داشته باشید که شما نمی توانید همزمان مشتریان و سفارشات را در کنار هم مشاهده کنید. اما به سادگی می توانید با اجرای یک کوئر اسم و شماره تلفن هر مشتری را که در طی هفته جاری سفارش داشته است را پیدا کنید.
اگر کوئر به خوبی طراحی شود اطلاعاتی در اختیار کاربر قرار می دهد که ممکن است پیدا کردن آن ها به صورت دستی کار بسیار دشواری باشد و هم چنین نیاز به بررسی جداول زیادی نیز داشته باشد.
نمای طراحی کوئری ساده در مایکروسافت اکسس
هنگامی که شما کوئری را ایجاد می کنید، نتایج آن در جدولی نشان داده می شود. اما شما می توانید در هنگام ساختن یک کوئر از نماهای دیگر نیز استفاده کنید. این نما را نمای طراحی (Design View) کوئری می گویند. با استفاده از این نما شما می توانید ساختار کوئری را در آن تعیین کنید. در تصویر زیر شما می توانید بخش های مختلف نمای طراحی کوئری را مشاهده کنید.
نحوه ساخت یک کوئر ساده از یک جدول
برای مثال ما می خواهیم یک کوئر بر روی جدول مشتری از پایگاه داده ایجاد کنیم.
پس ما تنهای مشتریانی را می خواهیم که در شهر Raleigh زندگی می کنند. پس در فیلد شهر (City) عبارت Raleigh را جستجو می کنیم. کد پستی این افراد را به عنوان معیار دیگر برای دعوت به مراسم در نظر می گیریم.
کوئری تک جدولی در حقیقت یک فیلتر پیشرفته است که بر روی یک جدول اعمال می شود.
مراحل ایجاد یک کوئری ساده در مایکروسافت اکسس
گام اول:
در نوار ابزار اکسس بر روی تب Create کلیک کنید. سپس، به بخش Queries بروید.
مرحله دوم:
خب حالا بر روی گزینه Query Design کلیک کنید.
مرحله سوم:
در این مرحله مایکروسافت اکسس به نمای طراحی کوئری منتقل خواهد شد. کادر محاوره ای Show Table برای شما ظاهر می شود. خب حالا جدولی را که می خواهید بر روی آن کوئری را ایجاد کنید، انتخاب کنید. همان طور که در بالا اشاره کردیم ما برای مثال می خواهیم کوئری خود را بر روی جدول مشتری (Customers) ایجاد کنیم.
مرحله چهارم:
بعد ار انتخاب جدول موردنظر حالا بر روی گزینه Add کلیک کرده تا کوئری اضافه شود. در نهایت گزینه بر روی Close کلیک کنید.
مرحله پنجم:
جدولی را که انتخاب کرده بودید به صورت یک جدول کوچک در بخش Object Relationship Pane ظاهر می شود. اکنون در جدول کوچک، فیلدهایی را که می خواهید در جدول وجود داشته باشند را انتخاب کنید. هر فیلدی را که شما انتخاب می کنید به جدول طراحی (Design Grid) در پایین صفحه اضافه می شود.
برای مثال ما می خواهیم کارت های دعوت را به آدرس مشتریانی ارسال کنیم که در محدوده مشخصی زندگی می کنند. پس ما به فیلدهای نام، نام خانوادگی، آدرس، شهر و کدپستی نیاز داریم
مر حله ششم:
معیار جستجو (Search Criteria) را در ردیف Criteria تیک بزنید. ممکن است بیش از یک فیلد را به عنوان معیار جستجو انتخاب کنید. وقتی جستجو به صورتی است که چند معیار دارید و نیازی ندارد همه معیارها با هم صدق کنند. می خواهیم مشتریانی را پیدا کنیم که در شهر Raleigh و با کد پستی ۲۷۵۱۳ ساکن هستند. پس کلمه Raleigh را در فیلد شهر (City) و عبارت ۲۷۵۱۳ را در کد پستی (Zip Code) وارد کنید.
استفاده از علامت گیومه موجب می شود که جستجو به صورتی باشد که فقط موارد کاملاً مطابق (Exact Match) را نمایش دهد.
مرحله هفتم:
بعد از مشخص کردن معیار، حالا باید کوئری را اجرا کنید. برای انجام این کار بر روی گزینه Run در تب Design کلیک کنید.
مرحله آخر ایجاد کوئری ساده در مایکروسافت اکسس
نتیجه کوئری در نمای صفحه گسترده (Datasheet View) نماش داده خواهد شد که شبیه یک جدول می باشد. اگر شما قصد داشته باشید که کوئری ایجاد شده را ذخیره کنید تا دفعات بعد نیز بتوانید از آن استفاده کنید، بر روی دستور Save در نوار ابزار دسترسی سریع کلیک کنید. پس از کلیک بر روی Save کادر محاوره ای Save As باز خواهد شد. از شما خواسته می شود که یک نام را برای کوئری انتخاب و وارد کنید. در نهایت نیز برای ذخیره شدن آن بر روی گزینه Ok کنید.
طرح ریزی کوئری
گام یک: تعیین کنید دقیقا می خواهید چه سؤالی را بپرسید
در پایگاه داده شیرینی فروشی تعداد زیادی مشتری ثبت شده است. برخی از این مشتریان تا کنون سفارشی نداشته اند اما در پایگاه داده ثبت شده اند. این مشتریان در خبرنامه یا لیست ایمیل های شیرینی فروشی ثبت نام کرده اند. برخی از آن ها در محدوده شهر و برخی دیگر خارج از شهر و یا حتی در خارج از محدوده شهر زندگی می کنند.
ما قصد داریم که مشتریانی را که در خارج از محدوده شهر قرار دارند و قبلا سفارش داشته اند، بر گردند و شیرینی های جدید ما را امتحان کنند. بنابراین ما می خواهیم به آن های ایمیل زده و برگه های تخفیف را برای آن ها ارسال کنیم. نمی خواهیم برای مشتریانی که خیلی از شهر دور هستند، برگه تخفیف را ارسال کنیم. چرا که به احتمال زیاد به دلیل مسافت دور آن ها به شیرینی فروشی مراجعه نخواهند کرد. پس ما دقیقا به دنبال مشتریانی هستیم که در شهر زندگی نمی کنند اما در این منطقه حضور دارند.
به طور خلاصه سؤالی را که می خواهیم کوئری به آن پاسخ دهد این است: کدام مشتریان خارج از شهر اما در این منطقه زندگی می کنند و قبلاً از شیرینی فروشی ما سفارش داشته اند؟
گام دوم: اطلاعات مورد نیاز را تعیین کنیم
خب حالا ما چه اطلاعاتی را می خواهیم تا لیست این گروه از مشتریان را مشاهده کنیم؟ ما نام مشتری، اطلاعت تماس شامل، آدرس، شماره تلفن و آدرس ایمیل آن ها را می خواهیم. اما چگونه بفهمیم که آن ها سفارشی را از شیرینی فروشی ما داشته اند یا خیر؟
هر رکورد در جدول سفارش (Order) مشخص می کند که سفارش مربوط به کدام مشتری است. پس ما اگر فیلد مربوط به شماره های کد سفارش (Order ID Numbers) را داشته باشیم، لیست محدود به مشتریانی خواهد شد که قبلاً سفارش داشته اند.
گام سوم: مشخص کردن جداولی که اطلاعات مورد نیاز ما را دارند
برای طراحی یک کوئری، باید با جداول موجود پایگاه داده های آشنا باشیم. می دانیم برای دسترسی به اطلاعات مشتریان در پایگاه داده ها باید به جدول مشتریان (Customers) مراجعه کنیم. شماره های کد سفارش را نیز از جدول سفارشات (Orders) به دست می آوریم. پس برای به دست آوردن اطلاعات مورد نیاز کافی است از همین دو جدول استفاده کنیم.
گام چهارم: تعیین معیاری که کوئری به دنبال آن است
هنگامی که برای یکی از فیلدها معیار (Criteria) قرار می دهیم، در واقع برای آن فیلتری را مشخص می کنیم تا فقط اطلاعاتی را با معیار تعریف شده منطبق باشد را نشان دهد. لیست فیلدهایی را که در این کوئری وجود دارند را مرور کنید. چگونه و کجا معیاری را قرار دهیم تا در یافتن سؤال تعیین شده به ما کمک کند.
ما به مشتریانی که در شهر Raleigh زندگی می کنند نیاز نداریم. پس یک شرط را می خواهیم که تمام رکوردهای جدول مشتریان را به جز آن هایی که در شهر Raleigh و در مناطق دور از شهر هستند را نمایش دهد. از آنجایی که کد منطقه ما با ۹۱۹ شروع می شود، بنابراین معیاری که ما قرار می دهیم این است که فقط رکوردهایی نشان داده شود که شماره تماس آن ها با ۹۱۹ شروع می شود.
به این ترتیب برگه های تخفیف فقط برای مشتریانی ارسال خواهد شد که به اندازه کافی نزدیک هستند. با این کار آن ها را تشویق می کنیم که باز هم به شیرینی فروشی ما مراجعه کند و شیرینی سفارش دهند.
نکته
در کوئری باید معیارها را به زبانی بنویسم که اکسس متوجه شود. همان طور که در تصویر بالا مشاهده می کنید، معیاری که باید شماره تلفن ها با ۹۱۹ شروع شود به این صورت می نویسیم: Like (*919*).
ادغام جداول در کوئری
آخرین مرحله ای که برای ساخت یک کوئری از چند جدول باید به آن توجه کنید، نحوه اتصال یا ادغام (Join) جداول مورد نیاز است. وقتی دو جدول را به کوئری اضافه می کنیم، شما می توانید آن ها را در بخش Object Relation Pane مشاهده کنید.
خطی که دو جدول را به هم مربوط می کند را خط ادغام (Join Line) نامیده می شود. این خطوط به صورت فلش های جهت دار می باشند. این فلش نشان دهنده این امر است که کوئری جداول را به چه ترتیبی مشاهده و جست و جو می کند. همان طور که در شکل بالا مشاهده می کنید جهت فلش از چپ به راست می باشد. به این معنا است که کوئری طراحی شده ابتدا جدول سمت چپ را بررسی و جستجو می کند سپس به جستجو در جدول سمت را می پردازد تا با رکوردهایی را که تا کنون در جدول سمت چپ دیده است، ارتباط داشته باشد.
نکته ۱:
توجه کنید که همیشه جداول به این صورت به هم مربوط نمی شوند. گاهی اوقات کوئری جداول را از راست به چپ ادغام می کند. در هر حال ممکن است شما بخواهید جهت اتصال را تغییر دهید تا مطمئن شوید که کوئری اطلاعات صحیح را نمایش می دهد. جهت اتصال می توانید بر روی اطلاعاتی کوئری شما بر می گرداند تأثیر بگذارد.
مثال شیرینی فروشی
برای درک بهتر موضوع بالا به مثال خودمان باز می گردیم. در کوئری طراحی شده برای شیرینی فروشی ما به دنبال مشتریانی هستیم که سفارش داشته اند. بنابراین به هر دو جدول مشتریان و سفارشات نیاز داریم. اجازه دهید که برخی داده های موجود را در هر دو جدول بررسی کنیم.
به تصویر بالا نگاه کنید، چه چیزی را متوجه می شوید؟ توجه کنید که هر سفارش در جدول سفارشات به یک مشتری در جدول مشتریان متصل است. وقتی به جدول مشتریان نگاه می کنیم، می بینیم مشتریانی که بیش از یک سفارش را دارند، به بیش از چند رکورد در جدول سفارشات مشتری هستند. آن دسته از مشتریان که سفارشی نداشتند به هیچ رکورد از جدول سفارشات متصل نیستند.
بنابراین، با وجود این که دو جدول مشتریان و سفارشات با یکدیگر ارتباط داشته و به هم متصل هستند، اما ممکن است رکوردهایی در جدول داشته باشیم با هیچ رکوردی در جدول دیگر ارتباط ندارند. خب، وقتی اکسس می خواهد کوئری ما اتصال چپ به راست را اجرا کند، چه اتفاقی خواهد افتاد؟ ابتدا یک به یک رکوردها را از جدول سمت چپ (مشتریان) بیرون می کشد.
سپس، هر رکورد از جدول سمت راست که با رکوردهای جدول سمت چپ ارتباط داشته باشد را بیرون می کشد.
از آنجایی که کوئری ما از جدول مشتریان شروع شده است، کوئری همه مشتریان را استخراج خواهد کرد حتی آن هایی را که تا کنون سفارشی نداشته اند. بنابراین نتیجه کوئری بیشتر از اطلاعات مورد نیاز ما خواهد بود.
اما نگران نباشید می توان این مشکل را به راحتی حل کرد. تنها کافی است که جهت اتصال را تغییر داد. اگر جهت را تغییر دهیم، اکسس ابتدا سفارشات را انتخاب می کند.
نکته ۲:
توجه داشته باشید که در کوئری فعلی ما به ارتباط راست به چپ نیاز داشتیم تا اطلاعات صحیح را استخراج کنیم. پس جهت صحیح ارتباط در جداول به اطلاعاتی که می خواهیم و جدولی که اطلاعات در آن قرار دارد، بستگی خواهد داشت. هنگامی که جداول را به کوئری اضافه می کنید، مایکروسافت اکسس به صورت اتوماتیک جداول را به هم متصل می کند. اما ممکن است که جهت اتصال صحیح نباشد. به همین دلیل بسیار مهم است که همواره جهت ارتباط بین جداول را برای ساخت کوئری بررسی کنید.
نحوه ایجاد کوئری از چند جدول در اکسس
اکنون که کوئری مناسب برنامه ریزی شده است، می توانیم آن را ایجاد و اجرا کنیم. در هنگام ایجاد کوئری حتما به نتایج طراحی کوئری توجه داشته باشید تا نکته ای را از قلم نیندازید. برای ایجاد کوئری از چند جدول در مایکروسافت اکسس مراحل زیر را به ترتیب انجام دهید.
مرحله اول
در نوار ابزار مایکروسافت اکسس بر روی تب Create کلیک کنید. سپس، به بخش Queries بروید و بر روی گزینه Query Design کلیک کنید.
مرحله دوم
کادر محاوره ای Show Tableبرای شما باز خواهد شد. جداولی را که می خواهید در کوئری از آن ها استفاده کنید را انتخاب کنید. می توانید برای انتخاب آن ها به طور همزمان کلید Ctrl را در صفحه کلید خود فشار دهید. در مثال ما دو جدول Customers و Order Table را انتخاب می کنیم.
مرحله سوم
پس از انتخاب جداول مورد نظر خود بر روی گزینه Ok کلیک کنید.
مرحله چهارم
جداول انتخاب شده در Object Relationship Pane ظاهر خواهند شد که توسط یک خط اتصال به هم وصل هستند. برای تغییر دادن جهت اتصال می توانید بر روی آن کلیک کنید تا جهت آن را تغییر دهید.
مرحله پنجم
پس از کلیک بر روی خط اتصال، پنجره Join Properties برای شما باز خواهد شد. گزینه ای که جهت صحیح اطلاعات را نشان دهد انتخاب کنید. برای مثال ما گزینه سوم را انتخاب می کنیم چون اتصال راست به چپ را می خواهیم.
مرحله ششم
در پنجره جدول، بر روی فیلدهای که می خواهید در کوئری باشند کلیک کنید. این فیلدها به جدول طراحی (Design Grid) افزوده می شوند که در بخش پایین صفحه نمایش داده می شوند. در مثال ما به فیلدهای مشتری و شماره کد نیاز داریم.
مرحله هفتم
اکنون باید معیار هر فیلد را مشخص کنیم. دو معیار برای خروجی کوئری وجود دارد: در شهر Raleigh نباشد و شماره تماس با ۹۱۹ شروع شود. اولین معیار برای شهر و دومین برای شماره تلفن تعریف خواهد شد. این دو معیار به صورت زیر بیان می شوند که در تصویر نشان داده شده است.
مرحله هشتم
خب حالا برای اجرا کردن کوئری به نوار ابزار اکسس بروید و در تب Design بر روی گزینه Run کلیک کنید.
مرحله نهم
نتیجه کوئری را می توانید در Datasheet View مشاهده کنید که همانند یک جدول است. برای ذخیره سازی کوئری بر روی دستور Save در نوار ابزار دسترسی سریع کلیک کنید. کادر محاوره ای Save As برای شما باز خواهد شد. یک نام را برای کوئری خود انتخاب و آن را وارد کنید و سپس بر روی گزینه Ok کلیک کنید.
فهرست مطالب آموزشی اکسس
- فیلدهای محاسباتی Calculation Fields در اکسس
- اضافه کردن فیلد جدید به جداول در اکسس
- مدیریت تغییر اندازه رکوردها و فیلدها اکسس
- افزودن هدر و فوتر به فرم در مایکروسافت اکسس
- ایجاد query برای رکوردهای تکراری اکسس
- طراحی Query در مایکروسافت اکسس
- نحوه ایجاد گزارشات پیشرفته در Access
- ذخیره گزارشات به فرمت های مختلف در Access
جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.