如何在一个要调用一次的表单中创建一个设置为记录源的SQL(查询)?

时间:2015-10-26 15:30:09

标签: sql sql-server ms-access

背景:使用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子句?

1 个答案:

答案 0 :(得分:1)

根据我的经验,在链接的SQL Server表上使用多个LEFT JOIN的Access查询通常表现得非常糟糕。

如果您无法从查询中删除LEFT JOIN,create a SQL Server view,请将其链接到Access,并使用链接的视图作为表单的记录源。