1 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
مبنای کار رو باید روی درس بگذارین و نه نمره - به این شکل که هر درس برای هر سال و هر دوره تحصیلی منحصر به فرد باید باشه.
خیلی ساده جداول شما اینها میشن:
پایه های تحصیلی Grades
عناوین درسها CourseTitles
درسها Courses
آموزگاران (مربیان) Instructors
دانش آموزان Students
نمرات Gradings
همزمان با ثبت نام دانش آموزان برای هر درس، یک رکورد بازای هر دانش آموز در جدول Gradings میسازین،
بنابراین برای ثبت نمره لیست دانش آموزان آماده است.
ضمیمه 150488
نقل قول: طراحی کارنامه ماهیانه
سلام وعرض ادب..خیلی ممنونم....جداول انجام میدم ومزاحمتون میشم..ممنون که وقت گذاشتید..
نقل قول: طراحی کارنامه ماهیانه
سلام دوست عزیز..جداول طبق فرمایشتون،ساختم..اینکه چطوری دانش آموزان را برای درسها راثبت نام کنم،متوجه نشدم..هرفرمی ساختم باید یکی یکی دانش آموز انتخاب کنم..یا راهشو نوع فرمو بلد نبودم..ممنونم راهنمایی فرمایید..به این فایل وراهنمایی دوستان خیلی نیاز دارم...ممنونم..
نقل قول: طراحی کارنامه ماهیانه
نمونه میگذارم براتون
time ...
نقل قول: طراحی کارنامه ماهیانه
سلام..یک دنیا ممنونم..خیلی لطف میکنید ...
azad1353@
نقل قول: طراحی کارنامه ماهیانه
سلام
ببخشید دوست عزیزمن به این تاپیک خیلی علاقمند شدم .....
نمونه ای که فرمودید . آماده نشد
2 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
یک time گذاشته بودم تو پست آخر، چون وقت کافی نداشتم.
در واقع اینجا هیچ موضوع جدید یا نکته خاصی هم نداشتیم ولی چون دوستمون درخواست نمونه داشت برای رفع ابهام یک نمونه ساده براساس طراحی جداول پیشنهادی پیوست میکنم.
برای راحتی و سرعت کار جداول با دیتا نمونه پر شدن (در صورت نیاز به دونستن روش این کار در یک پست جداگانه درخواست بدین)
3 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
1 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
نقل قول: طراحی کارنامه ماهیانه
هر درس یک ID داره (CourseID) که با کد میسازیم و از فیلدهای زیر ترکیب میشه: سال، ترم، عنوان درس، پایه تحصیلی و کد مدرس
هنگام ثبت دانش آموزان برای هر درس، بازاء هر دانش آموز یک رکورد در جدول نمرات ساخته میشه که شامل کد درس و کد دانش و نمرات خالی هست
برای ثبت نمرات هر درس، بر اساس کد درس فیلتر میکنیم.
کلا نکته خاص یا جدیدی نیست که قبلا مشابهش مطرح نشده باشه، ولی پرسشی داشتین مطرح کنین.
1 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
فرم ثبت دروس:
ضمیمه 150542
Option Compare Database
Option Explicit
Dim v
Private Sub AddCourse_Click()
Dim CourseID, InstructorID As Long
CourseID = Year & Term & Format(CourseTitle, "00") & Format(Grade, "00")
If DCount("*", "Courses", "CourseID=" & CourseID) = 0 Then
DoCmd.RunSQL "INSERT INTO Courses (CourseID,Year,Term,Grade,CourseTitleID,Instructor ID) VALUES (" & CourseID & "," & Year & "," & Term & "," & Grade & "," & CourseTitle & "," & Instructor & ")"
v = MsgBox("Course Registered", , "")
Else
v = MsgBox("Course Alreday Registered!", vbInformation, "")
End If
End Sub
Private Sub CourseTitle_AfterUpdate()
Check
End Sub
Private Sub CourseTitle_NotInList(NewData As String, Response As Integer)
Me.CourseTitle.Undo
Me.CourseTitle.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 1390 To 1400
Me.Year.AddItem i
Next
End Sub
Private Sub Grade_AfterUpdate()
Check
End Sub
Private Sub Grade_NotInList(NewData As String, Response As Integer)
Me.Grade.Undo
Me.Grade.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Instructor_AfterUpdate()
Check
End Sub
Private Sub Term_AfterUpdate()
Check
End Sub
Private Sub Term_NotInList(NewData As String, Response As Integer)
Me.Term.Undo
Me.Term.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Year_AfterUpdate()
Check
End Sub
Private Sub Year_NotInList(NewData As String, Response As Integer)
Me.Year.Undo
Me.Year.Dropdown
Response = acDataErrContinue
End Sub
Sub Check()
Me.AddCourse.Enabled = Not (IsNull(Year) Or IsNull(Term) Or IsNull(Grade) Or IsNull(CourseTitle) Or IsNull(Instructor))
End Sub
1 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
فرم ثبت نام دانش آموزان برای درس مشخص:
ضمیمه 150543
Option Compare Database
Option Explicit
Const RecSrc = "SELECT S.FullName,G.* FROM Gradings G INNER JOIN Students S ON G.StudentID=S.StudentID WHERE G.CourseID="
Dim CourseID As Long
Dim v
Private Sub AddStudent_Click()
If Nz(CourseID, 0) = 0 Or Nz(Me.Student, 0) = 0 Then Exit Sub
If DCount("*", "Gradings", "CourseID=" & CourseID & " AND StudentID=" & Me.Student) = 0 Then
DoCmd.RunSQL "INSERT INTO Gradings (CourseID,StudentID) VALUES(" & CourseID & "," & Student & ")"
Me.Requery
Else
v = MsgBox("Alredey registered", vbExclamation, Me.Student.Column(2))
End If
End Sub
Private Sub CourseTitle_AfterUpdate()
GetData
End Sub
Private Sub CourseTitle_NotInList(NewData As String, Response As Integer)
Me.CourseTitle.Undo
Me.CourseTitle.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 1390 To 1400
Me.Year.AddItem i
Next
Me.RecordSource = RecSrc & 0
End Sub
Private Sub Grade_AfterUpdate()
Me.CourseTitle.Requery
GetData
End Sub
Private Sub Grade_NotInList(NewData As String, Response As Integer)
Me.Grade.Undo
Me.Grade.Dropdown
Response = acDataErrContinue
End Sub
Private Sub RemoveStudent_Click()
If MsgBox("Are you sure?", vbQuestion + vbYesNo + vbDefaultButton2, "") = vbYes Then
DoCmd.RunSQL "DELETE FROM Gradings WHERE CourseID=" & CourseID & " AND StudentID=" & Me.StudentID
Me.Requery
End If
End Sub
Private Sub Term_AfterUpdate()
Me.Grade.Requery
GetData
End Sub
Private Sub Term_NotInList(NewData As String, Response As Integer)
Me.Term.Undo
Me.Term.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Year_AfterUpdate()
Me.Term.Requery
GetData
End Sub
Private Sub Year_NotInList(NewData As String, Response As Integer)
Me.Year.Undo
Me.Year.Dropdown
Response = acDataErrContinue
End Sub
Sub GetData()
Dim InsID As Long
CourseID = Year & Term & Format(CourseTitle, "00") & Format(Grade, "00")
InsID = Nz(DLookup("InstructorID", "Courses", "CourseID=" & CourseID), 0)
If InsID = 0 Then
Me.MSG.Caption = "Course Not Registered"
Else
Me.MSG.Caption = ""
End If
Me.Student.Enabled = (InsID > 0)
Me.AddStudent.Enabled = (InsID > 0)
Me.Instructor = DLookup("FullName", "Instructors", "InstructorID=" & InsID)
Me.RecordSource = RecSrc & CourseID
End Sub
1 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
فرم ثبت نمرات:
ضمیمه 150544
Option Compare Database
Option Explicit
Const RecSrc = "SELECT S.FullName,G.* FROM Gradings G INNER JOIN Students S ON G.StudentID=S.StudentID WHERE G.CourseID="
Private Sub CourseTitle_AfterUpdate()
GetData
End Sub
Private Sub CourseTitle_NotInList(NewData As String, Response As Integer)
Me.CourseTitle.Undo
Me.CourseTitle.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Form_Load()
Me.RecordSource = RecSrc & 0
End Sub
Private Sub Grade_AfterUpdate()
Me.CourseTitle.Requery
GetData
End Sub
Private Sub Grade_NotInList(NewData As String, Response As Integer)
Me.Grade.Undo
Me.Grade.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Term_AfterUpdate()
Me.Grade.Requery
GetData
End Sub
Private Sub Term_NotInList(NewData As String, Response As Integer)
Me.Term.Undo
Me.Term.Dropdown
Response = acDataErrContinue
End Sub
Private Sub Year_AfterUpdate()
Me.Term.Requery
GetData
End Sub
Private Sub Year_NotInList(NewData As String, Response As Integer)
Me.Year.Undo
Me.Year.Dropdown
Response = acDataErrContinue
End Sub
Sub GetData()
Dim InsID, CrsID As Long
CrsID = Year & Term & Format(CourseTitle, "00") & Format(Grade, "00")
InsID = Nz(DLookup("InstructorID", "Courses", "CourseID=" & CrsID), 0)
Me.Instructor = DLookup("FullName", "Instructors", "InstructorID=" & InsID)
Me.RecordSource = RecSrc & CrsID
End Sub
1 ضمیمه
نقل قول: طراحی کارنامه ماهیانه
این دیتابیس نمونه فقط جنبه آموزشی داره و نه طراحی جداول و نه کدها بهینه نشدن و با یک برنامه واقعی و کاربردی فاصله دارن.
ولی اصول کار همین هست و میتونه راهنمای خوبی باشه.
نقل قول: طراحی کارنامه ماهیانه
نقل قول: طراحی کارنامه ماهیانه
سلام وعرض ادب....
خیلی خیلی ممنونم که وقت گذاشتید...فایل ودیتا را میسازم وسوالی بود،می پرسم.....خدا خیرتون بده..ممنونم
نقل قول: طراحی کارنامه ماهیانه
نقل قول:
نوشته شده توسط
amirzazadeh
دست مريزاد و خدا قوت.
ممنون جناب میرزازاده
نظر لطف شماست
نقل قول: طراحی کارنامه ماهیانه
نقل قول:
نوشته شده توسط
kolait
سلام وعرض ادب....
خیلی خیلی ممنونم که وقت گذاشتید...فایل ودیتا را میسازم وسوالی بود،می پرسم.....خدا خیرتون بده..ممنونم
سلام
موفق باشید
پرسشی داشتین حتما مطرح کنین
نقل قول: طراحی کارنامه ماهیانه
نقل قول:
نوشته شده توسط
mazoolagh
سلام
موفق باشید
پرسشی داشتین حتما مطرح کنین
با سلام خدمت شما دوستان عزیزخصوصا آقای mazoolagh
خواهشی داشتم .میشه همین دیتابیس را بدون کدنویسی و براساس ارتباط جداول موجود طراحی کرد . و فرمی برای ورود اطلاعات ایجادکنید .؟؟
آخه بنده کدنویسی بلد نیستم ولی براساس توضیحات جنابعالی جدول را ساختم ولی نتیجه نگرفتم
خیلی ساده جداول شما اینها میشن:
پایه های تحصیلی Grades
عناوین درسها CourseTitles
درسها Courses
آموزگاران (مربیان) Instructors
دانش آموزان Students
نمرات Gradings
ممنون میشم ازهمه دوستان عزیز
نقل قول: طراحی کارنامه ماهیانه
نقل قول:
نوشته شده توسط
نوشیروانی
با سلام خدمت شما دوستان عزیزخصوصا آقای
mazoolagh
خواهشی داشتم .میشه همین دیتابیس را بدون کدنویسی و براساس ارتباط جداول موجود طراحی کرد . و فرمی برای ورود اطلاعات ایجادکنید .؟؟
آخه بنده کدنویسی بلد نیستم ولی براساس توضیحات جنابعالی جدول را ساختم ولی نتیجه نگرفتم
سلام و روز خوش
اینکه نوشتین کدنویسی بلد نیستین رو میگذارم بحساب شکسته نفسی شما، چون در چندین و چند تاپیک دیدم پست های شما رو و اینکه برنامه هم پیوست کردین.
بطور متعارف و منطقا همه عملیات باید از طریق فرم انجام بشه و دسترسی مستقیم کاربر به جداول درست نیست مگر اینکه دیتابیس برای کارهای شخصی خودتون باشه.
در جدول هم کنترل بسیار محدودی رو عملیات دارین (در مقایسه با فرم) و فقط بعضی کارهای خاص رو بهتر هست بعهده دیتامکرو ها بگذاریم.
ساخت روابط از پیش تعریف شده در سطح دیتابیس هم ضروری نیست مگر اینکه هدف خاصی رو دنبال کنیم و در مثال پیوست هم هیچ رابطه ای تعریف نشده، ولی در پست شماره دو تصویر روابطی رو که در واقع در فرم ها استفاده شده، میبینین.