背景:使用MS Access作为前端,使用SQL Server作为后端来组织学校中每个学生的数据。
我一直在研究MS Access表单,我已将记录源设置为查询,并将预期的文本框,组合框等设置为已收到的属性。
现在的问题是,每个学生的查询在表单加载时执行或从一个记录更改为另一个记录。我通过查看SQL分析器得出了这个结论,并注意到正在执行大量查询(加载一条记录需要大约14秒)。
有办法解决这个问题吗?
以下是用于检索数据的SQL脚本(在表单上设置为记录源)。
SELECT
PERSON.id, PERSON.id_number,
Student.Student_Status, PERSON.name,
PERSON.surname, PERSON.dob, PERSON.address_1, PERSON.address_2,
PERSON.town, PERSON.mobile, PERSON.telephone, PERSON.postcode,
PERSON.id, PERSON.nationality, PERSON.dual_nationality,
PERSON.gender, Student.student_type, Student.mcast_email,
PERSON.euCitizen, PERSON.email, PERSON.NI_no,
PERSON.next_of_kin, Student.Form, course.course_name,
course.course_code, CourseYear.Year, Institute.Institute_name
FROM
((((PERSON
LEFT JOIN
Student ON PERSON.ID = Student.person)
LEFT JOIN
CourseYear ON Student.id = CourseYear.student)
LEFT JOIN
Yearlyprogramme ON CourseYear.course = Yearlyprogramme.id)
LEFT JOIN
course ON Yearlyprogramme.course = course.id)
LEFT JOIN
Institute ON course.Institute = Institute.id;
检索到的这些属性设置为文本框和组合框以显示数据。有没有办法为每个学生调用一次这个查询,而不必使用ID上的WHERE
子句?
答案 0 :(得分:1)
根据我的经验,在链接的SQL Server表上使用多个LEFT JOIN的Access查询通常表现得非常糟糕。
如果您无法从查询中删除LEFT JOIN,create a SQL Server view,请将其链接到Access,并使用链接的视图作为表单的记录源。