我在Access 2016中工作,我从中可以选择要运行报告的培训类型。所有训练的选项值均为1,血源性的选项值为2,依此类推。我想获取表格的值并将其传递给查询,这样它将显示接受该培训的所有员工。
我的表单是View February Training,在一个名为FrameAllorCurrent的框架中包含一个选项组。我的查询包含训练字段,我可以使用以下字段进行过滤。像“ 68”一样。68是训练表中的训练ID。
我知道我必须在查询的训练字段中按照以下步骤进行操作: [表格]![查看2月培训]。[FrameAllOrCurrent] .Value = 2 但是,当它等于2时,我如何使它变成训练场“ 68”并返回我所有的血统训练呢?
SQL查询:
/salary
答案 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
。如果数据类型为数字,则只需删除引号即可。