访问表单上的选项组作为查询参数

时间:2018-07-17 15:35:17

标签: sql ms-access

我在Access 2016中工作,我从中可以选择要运行报告的培训类型。所有训练的选项值均为1,血源性的选项值为2,依此类推。我想获取表格的值并将其传递给查询,这样它将显示接受该培训的所有员工。

我的表单是View February Training,在一个名为FrameAllorCurrent的框架中包含一个选项组。我的查询包含训练字段,我可以使用以下字段进行过滤。像“ 68”一样。68是训练表中的训练ID。

我知道我必须在查询的训练字段中按照以下步骤进行操作: [表格]![查看2月培训]。[FrameAllOrCurrent] .Value = 2 但是,当它等于2时,我如何使它变成训练场“ 68”并返回我所有的血统训练呢?

SQL查询:

/salary

1 个答案:

答案 0 :(得分:0)

对此有几种解决方案。但是一种实现方法是:

SELECT CompletedTrainings.RecordID
    ,CompletedTrainings.Employee
    ,CompletedTrainings.Training
    ,CompletedTrainings.CompletedDate
    ,CompletedTrainings.ExpiredDate
    ,EmployeeInformation.Employee
    ,EmployeeInformation.Active
    ,Trainings.TrainingID
    ,Trainings.[Training Name]
FROM Trainings
INNER JOIN (
    EmployeeInformation INNER JOIN CompletedTrainings 
        ON EmployeeInformation.ID = CompletedTrainings.Employee
        ) ON Trainings.TrainingID = CompletedTrainings.Training
WHERE EmployeeInformation.Active LIKE "-1"
AND [Training Name] = 
    SWITCH (
        [Forms]![View February Training].[FrameAllOrCurrent] = 1, "Whatever 1 should be",
        [Forms]![View February Training].[FrameAllOrCurrent] = 2, "68",
        [Forms]![View February Training].[FrameAllOrCurrent] = 3, "If there's a 3... etc."
        )
ORDER BY Trainings.[Training Name]

注意:我不确定您的相关字段是什么,因此将其列为[Training Name],这也基于您之前的引用假定该列的格式为TEXT。如果数据类型为数字,则只需删除引号即可。