View Single Post
  #17  
Old May 20th, 2010, 12:35 PM posted to microsoft.public.access.forms
Gntlhnds
external usenet poster
 
Posts: 97
Default Setting up tables for grades

I know it has been a while since this post was made, but I've finally been
able to devote some time into trying to finish this. I've run into a
problem, though.

In my subform, I have a datasheet with two columns, Course and Grade.
Course is a combo box with CourseID as its control sourse (from
tblCourseGrades), its row source is tblCourses, its bound column is 1, it is
set up with two colums, column widths being 0";1". Grade has its control
sourse as Grade from tblCourseGrades. The problem comes when I try to select
the course to input a grade for it. It won't let me select any course and
tells me in the lower left of the screen "control can't be edited; it's bound
to AutoNumber field "ControlID". If I try to make it an unbound control,
then the courses column appears blank, and when I try to select a course, it
makes that the course for all the records in the datasheet. If I try to use
Course from tblCourses as its control source, I get a message that pops up
when I try to select a course that says "Field cannot be updated", and if I
click "ok" on that it will leave my input as it is, and if I go to another
record and back to that original record, it will allow me to input a grade.
The side effect is that in tblCourseGrades there is a new record, but nothing
in the StudentID field, and tblCourses has a new record that isn't supposed
to be there. What do I need to do to get this seemingly straightforward form
to work properly? Thanks for the help.

"John W. Vinson" wrote:

On Fri, 23 Apr 2010 11:14:01 -0700, Gntlhnds
wrote:

I was thinking the problem was my tables. Here's my current structu

tblStudents:
StudentID
Last Name
First Name
Class #


What's Class#? I'd remove the blanks from the fieldnames and avoid using # -
it's a date delimiter and can cause problems in fieldnames. If you do keep
them you must ALWAYS use [square brackets] around the fieldnames.


tblCourses:
CourseID
Course

tblCourseGrades:
GradeID (Primary Key)
StudentID (Foreign Key)
CourseID (Foreign Key)
Grade


That appears to be correct. You might want to create a unique twofield index
on StudentID and CourseID to prevent one student from being signed up to the
same course twice.

tblStudents has other fields, but those are the only ones that pertain to
setting up the grades. I know the naming convention for the field names
isn't proper, but I inherited the database and I'm afraid of changing the
field names because it might cause many other things to fail in the database.

Here's how my school operates:
Student shows up and is assigned to a class. The class takes the 13 classes
sequentially. A few weeks later some more students show up, are assigned to
a class, and they start the courses as well, taking them sequentially.
Hopefully that helps clear up what I'm looking for and expecting. I was
thinking I could just create a form that I could select the student from a
combo box, and the subform would list the courses and allow me to input the
student's grade for each class (to be stored in tblCourseGrades). Then I
would create report(s) that would allow me to take those grades and output
them in various formats (one individualized for the student, one for the
class, and then whatever other ones I get tasked to provide). I really do
thank you for helping me out and trying to make me understand how this is
really supposed to work.


You're doing OK. I'd suggest basing a Form on tblStudents; use the combo box
wizard to create an unbound combo on the form to navigate to a particular
student's record (use the option "Use this combo to find a record" in the
wizard).

On the form you would put a Subform based on tblCourseGrades. This subform
would use the StudentID as the master/child link field, and have a combo box
for the CourseID; the combo's rowsource would be the Courses table to let you
pick which courses for that student. The combo will show all the courses. Next
to the combo you'ld have a textbox to enter the grade.
--

John W. Vinson [MVP]
.