PDA

View Full Version : فراخوانی چند باره اطلاعات از یک جدول



reza41
دوشنبه 01 شهریور 1395, 19:01 عصر
سلام

من میخوام یک بانک اطلاعاتی برای مدیریت یک مدرسه طراحی کنم. الان دو سناریو قابل اجرا هست:

1. یک جدول برای مشخصات دانش آموزان درست بشه.

یک جدول برای مشخصات اساتید

یک جدول برای مشخصات راننده ها

یک جدول برای مشخصات کارمندان

2. یک جدول برای مشخصات همه افراد حاضر در مدرسه درست بشه و در این جدول فیلدی وجود داشته باشه که وضعیت هر کسی رو مشخص کنه که مثلا آیا استاد هست یا دانش آموز یا ...

به نظر من راه دوم منطقی تر هست و از افزونگی اطلاعات هم جلوگیری میکنه.

خوب حالا من اومدم و طبق سناریوی دوم جدول هام رو ایجاد کردم. یک جدول دارم برای ثبت غیبت که در اون شماره پرونده دانش آموز، شماره استاد و شماره درس ثبت میشه.

خوب حالا من میخوام یک کوئری بسازم که در اون لیست غیبت ها به صورت کامل ثبت بشه. یعنی شماره پرونده به همراه اسم دانش آموز و اسم استاد و اسم درس.

کوئری تا جایی که ما میخوایم اسم دانش آموز و اسم درس رو نشون بده بدون مشکل کار میکنه.

اما همین که بخوایم بگیم اسم استاد رو هم نشون بده دیگه کار نمیکنه و علتش هم اینه که هم جدول ثبت غیبت و هم جدول استاد هر دو میخوان از جدول مشخصات فردی، اطلاعات بگیرن.

چطوری میشه در کوئری کاری کرد که بگیم در این فیلد، شماره پرونده مربوط به استاد هست و مشخصات استاد رو نشون بده.

امیدوارم سوالم مشخص شده باشه.

ممنون

e601
پنج شنبه 04 شهریور 1395, 10:30 صبح
سلام

از نظر استاندارد در طراحی دیتابیس باید موجودیت هایی که به هم ربطی ندارن از هم جدا بشن و هر کدام یک جدول جداگانه داشته باشن. و در هر جدول هر رکورد یک کد یکتا داشته باشه. مثلا موجودیتی بنام دانش آموز --> جدول دانش آموزان --> هر دانش آموز یک کد یکتا --> نام دانش آموز --> و اگر نیاز بود فیلدهای تکمیلی...
برای اساتید و سایر موجودیت ها هم به همین صورت.
حالا من نمیدونم برنامه شما چطور کار میکنه و غیبتها چجوری ثبت میشه و ... ولی استاندارد طراحی دیتابیس بر مبنای روش ER به این صورته.

البته این روش نمودار ER یه مقدار پیچیده هستش و برای دیتابیس های بزرگ بکار میاد.

در مورد روش دوم که خودتون استفاده میکنید باید بگم شما اگر از کدهای vba استفاده کنید محدودیتی در فراخوانی اطلاعات از یک جدول ندارید. میتونید چندتا recordset درست کنید و داخل هر کدوم کوئری مورد نظرتون رو بنویسید و نتایج بدست اومده رو در متغیرها ذخیره کنید و در نهایت مقادیر متغیرها رو در جدول موردنظر ذخیره/آپدیت/حذف کنید.