بازدید: ۴۵٧

محاسبه درصدهای یک پرسشنامه با استفاده از فرم پرس و جوی چند سطحی (آموزش پیشرفته اکسس)

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

 

فرض کنید که یک بانک اطلاعاتی اکسس دارید و در آن نتایج یک پرسشنامه را که حاوی مقادیر Yes/No می باشد، ذخیره می کنید. اکنون می خواهید بدانید که چگونه می توانید پاسخها را با کمک یک فرم پرس و جو (Query) بصورت درصد نشان دهید.

آنطور که به نظر می رسد راه حل این سوال آنقدرها هم آسان نیست. فیلد جدول ما از نوع داده YES/NO است. علاوه بر آن هر پاسخ به این سوال در رکوردهای جداگانه ای ذخیره می شود. برای انجام اینکار باید سه مرحله طی شود:

  1. باید تعداد افرادی که در این مصاحبه شرکت کرده اند و پاسخ داده اند را مشخص کنیم (صرف نظر از نوع پاسخی که آنها داده اند)
  2. تعداد افرادی که در مصاحبه ما پاسخ YES داده اند را مشخص کنیم.
  3. میزان درصد پاسخهای YES را برمبنای اطلاعات بدست آمده از مرحله 1 و 2 محاسبه کنیم.

هرکدام از این سه مرحله فوق باید توسط یک فرم پرس و جوی(Query) جداگانه انجام شود. علاوه براینکه در مرحله سوم، فرم پرس و جوی ما از داده های بدست آمده در دو فرم پرس و جوی ایجاد شده در دو مرحله قبل استفاده می کند. در حقیقت فرم پرس و جوی نهایی چند سطحی است زیرا داده های جدول اولین سطح را نشان می دهند، فرم های پرس و جو در مرحله 1 و 2 سطح دوم می باشند و فرم پرس و جوی مرحله سوم، سطح سوم و نهایی می باشد.

 

روش حل مثال

 

ابتدا نگاهی به بانک اطلاعاتی زیر می اندازیم تا برای حل این مسئله، از آن سه مرحله استفاده کنیم. جدولی که فرم های پرس و جو(Query) برمبنای آنها می باشند حاوی سه سوال در هر رکورد هستند. هر سوال از نوع داده YES/NO می باشد.

 

نمونه پرسشنامه

شکل 1: داده های نمونه ما که باید با آنها کار کنیم در جدولی به نام tblQuestionnaire ذخیره شده اند. هر رکورد یک مجموعه مصاحبه جداگانه ای از پاسخها را نشان می دهد. در این مثال ما پاسخ به سوال 1 مدنظرمان می باشد.

 

 

مرحله 1:

در مرحله اول یک فرم پرس و جو ایجاد می کنیم تا تعداد رکوردهای مصاحبه را بشمارد. به عبارتی دیگر تعداد دفعاتی که سوال شماره 1  (Question1) پرسیده شده است را می شماریم. برای این منظور به یک ستون فرم پرس و جو که براساس شمارش فیلد ID در جدول tblQuestionnaire قرار دارد، نیاز است. نام این فرم پرس و جو را qryQuestion1Count می گذاریم:

 

سوالات پرسیده شده در پرسشنامه

شکل 2: فرم پرس و جوی مرحله اول که به نام qryQuestion1Count ذخیره شده است. 

 

مرحله 2:

 در مرحله دوم یک فرم پرس و جو ایجاد می کنیم که تعداد پاسخهای YES به سوال 1 را بشمارد. برای این منظور باید فیلد ID جدول tblQuestionnaire را بشمارید همانند فرم پرس و جوی اول ولی اینبار باید ستون فرم پرس و جوی دوم را نیز برمبنای فیلد Question1 اضافه کنیم. برای این ستون باید شرطی را نیز اضافه کنیم تا پاسخهای YES را برای ما فیلتر کند (از آنجایی که مقدار -1 در زمانی که با نوع داده های YES/NO سروکار دارید، نشان دهنده مقدار YES می باشد، شرط شما =-1 می شود). بنابراین یک فرم پرس وجو ایجاد می کنیم تا فیلدهای ID تمامی رکوردهایی را که آنها Question1=-1 می باشد، بشمارد. این فرم پرس و جو را qryQuestion1Yes نامگذاری می کنیم. 

 

فرم پرس و جوی مرحله دوم

شکل 3: فرم پرس و جوی مرحله دوم که نام آن qryQuestion1Yes است. این فرم پرس و جو تعداد فیلدهای ID موجود در جدول tblQuestionnaire را که در آنها Question1=-1 میباشد، می شمارد. 

 

مرحله 3:

برای مرحله نهایی و سوم، نیاز است تا یک فرم پرس وجو برمبنای دو فرم پرس و جوی قبلی ایجاد کنیم. برای اینکار بعد از باز کردن پنجره Query Design،  فرم های پرس وجوی qryQuestion1Count و qryQuestion1Yes را از برگه QUERIES موجود در فرم SHOW TABLE انتخاب می کنیم. 

 

فرم پرس و جوی چند سطحی

شکل 4: فرم پرس و جوی سوم QryQuestion1Percent.

 

همانطور که در شکل 4 مشاهده می کنید، هردو فرم پرس و جوی مورد استفاده دارای یک فیلد یکسان می باشند(CountOfId). با استفاده از اطلاعات موجود در آنها می توانیم یک فیلد محاسبه شده  ایجاد کنیم تا درصد پاسخهای YES سوال 1 را نشان دهد. برای این منظور عدد 100 را به تعداد دفعاتی که سوال 1 پرسیده شده است تقسیم می کنیم سپس آن را در تعداد دفعاتی که مقدار YES در پاسخ به سوال 1 داده شده است، ضرب می کنیم. از آنجایی فیلدهایی با اسامی تکراری در هر فرم پرس و جو وجود دارند، برای رجوع به هر فیلد، از اسامی فرم های پرس و جو نیز استفاده کرده ایم.

به عبارتی دیگر [qryQuetion1Count].[CountOfId] و [qryQuetion1Yes].[CounOfId].

 

نتیجه:

در این مثال ما 20 بار سوال کردیم و 10 بار نیز پاسخ YES داده شده است. اگر بخواهیم بصورت دستی مقدار آن را محاسبه کنیم روش حل آن :100/20*10 می شود که پاسخ 50% می شود. نتیجه بدست آمده از اجرای فرم پرس و جوی مرحله سوم نیز همین مقدار است. 

 

نتیجه فرم پرس و جوی چند سطحی

شکل 5: نتیجه فرم پرس و جویی که توسط qryQuestion1Percent باز گردانده شده است. 

 

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

طراحی سایت و سئو توسط ضابط