MS Access 测验表单:使用 VBA 根据从多个用户的测试表单下拉列表中选择的课程来更改表单控件的记录源

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

我有一张问题表。该表包含 3 门课程的问题。 “课程”是该表中的字段之一。设置了 3 个查询(Course1_extended、Course2_extended、Course3_extended)来获取 3 门课程中每门课程的所有记录。

我目前为 Course1 设置了一个表单,该表单使用 Course1_extended 查询表作为其记录源运行良好。我不想为每门课程创建单独的表格,因为还会添加更多课程。我想向测试表单或某些初始登录表单添加一个下拉列表,这会提示一些代码将该表单控件的记录源更改为相关课程的查询。我是 Access 编码的新手。看来我可以使用“Me.Form.RecordSource”等来做到这一点。想知道这是否会导致多个用户同时针对不同课程进行测验时出现任何问题。

vba forms ms-access dropdown multi-user
1个回答
0
投票

谢谢,这两条评论都将对我的表单的开发有所帮助。然而,我获得了正确的数据集,如下所示:

  • 在初始登录表单上,我放置了一个包含课程的组合框(SQL 查询填充问题表中的列表)。

  • 当用户输入信息并单击按钮移至第二个表单(测试表单)时,课程选择组合框中的值将保存到 TempVars!sCourseID(其中 sCourseID 是字符串数据类型的私有变量)。

  • 所有课程的问题都在一个问题表中。有一个查询从问题表中选择所有字段。对于 CourseID 字段,输入一个条件以匹配 TempVars("sCourseID"):

标准:[TempVars]![sCourseID]

测试表单的记录源属性设置为此过滤后的查询。

(最初,我在 VBA 中将 TempVars 设置为引号中的变量名称 TempVars("sCourseID"),当我在标题等中使用时,它工作正常,但我无法设置过滤条件(可能是因为不相关的原因)语法问题)。然后在我的 VBA 代码中更改为“!”样式作为 TempVars!sCourseID。不确定它是否重要,但它现在正在工作。还有其他更改,所以不能说这是否是原因。)

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