用于自动填充的 MS Access 相同组合框

问题描述 投票:0回答:1

我有两张桌子: 'tableStudent' - 由表格给出 ID 号的学生列表,包含以下列:

  • 学生ID
  • 姓氏
  • 名字

和“tableProject”,它为每个项目提供一个 ID,并将用于存储参与该项目的学生的信息。学生将两人一组完成该项目。该表包括以下列:

  • 项目_ID
  • 项目_标题
  • 学生1_ID
  • 学生2_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);

任何帮助表示赞赏!

ms-access join combobox inner-join autofill
1个回答
0
投票

用于显示查找表中相关信息的选项:

  1. 使用Access查询设计器构建表单RecordSource。将 tableStudent 拉入查询设计器。在您的情况下,拉入两次 - 第二个实例将被命名为 tableStudent_1。将每个连接到一个学生字段。将文本框绑定到两组查找表字段并将它们设置为“锁定是”以防止编辑。

  2. 根本不要在 RecordSource 表单中包含查找表。在组合框 RowSource 中包含所有学生信息。文本框中的表达式按索引引用组合框列,索引以 0 开头:=[comboboxName].Column(1)

  3. DLookup() 域聚合函数:这是效率最低的方法,因为域聚合函数会降低查询和表单的性能。

对于所有选项,设置带有 TabStop 编号的文本框。

© www.soinside.com 2019 - 2024. All rights reserved.