【问题标题】:MS Access Identical Comboboxes for Autofill用于自动填充的 MS Access 相同组合框
【发布时间】:2022-01-26 21:48:46
【问题描述】:

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

  • student_ID
  • 姓氏
  • 名字

和“tableProject”,它为每个项目提供一个 ID,并将用于存储有关参与该项目的学生的信息。学生将在项目中结对工作。此表包括以下列:

  • project_ID
  • project_title
  • student1_ID
  • student2_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】:

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

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

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

    3. DLookup() 域聚合函数,但是,由于您的表具有关系,因此这是一种低效的方法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      相关资源
      最近更新 更多