我有两张桌子: 'tableStudent' - 由表格给出 ID 号的学生列表,包含以下列:
和“tableProject”,它为每个项目提供一个 ID,并将用于存储参与该项目的学生的信息。学生将两人一组完成该项目。该表包括以下列:
student1_ID 和student2_ID 列是将student_ID 链接到学生姓名的组合框。
我想创建一个可用于记录参与项目的学生的表单。我希望能够选择学生 ID 并在表格上自动填写学生姓名。
我可以制作一个自动填充的表格,但仅限一名学生使用以下 SQL:
SELECT tableProject.project_ID, tableProject.project_title, tableProject.student1_ID, tableStudent.last_name, tableStudent.first_name
FROM tableStudent INNER JOIN tableProject ON (tableStudent.student_ID = tableProject.student2_ID) AND (tableStudent.student_ID = tableProject.student1_ID);
当我添加学生 2 时,学生姓名出现重复错误。如何表明这两个名字属于不同的学生?这是我生成的代码:
SELECT tableProject.project_ID, tableProject.project_title, tableProject.student1_ID, tableStudent.last_name, tableStudent.first_name, tableProject.student2_ID, tableStudent.last_name, tableStudent.first_name
FROM tableStudent INNER JOIN tableProject ON (tableStudent.student_ID = tableProject.student2_ID) AND (tableStudent.student_ID = tableProject.student1_ID);
任何帮助表示赞赏!
用于显示查找表中相关信息的选项:
使用Access查询设计器构建表单RecordSource。将 tableStudent 拉入查询设计器。在您的情况下,拉入两次 - 第二个实例将被命名为 tableStudent_1。将每个连接到一个学生字段。将文本框绑定到两组查找表字段并将它们设置为“锁定是”以防止编辑。
根本不要在 RecordSource 表单中包含查找表。在组合框 RowSource 中包含所有学生信息。文本框中的表达式按索引引用组合框列,索引以 0 开头:=[comboboxName].Column(1)
DLookup() 域聚合函数:这是效率最低的方法,因为域聚合函数会降低查询和表单的性能。
对于所有选项,设置带有 TabStop 编号的文本框。