【发布时间】:2021-01-14 16:14:57
【问题描述】:
我有一个员工索引,我需要对每个员工运行查询,并将该输出与原始员工一起显示。
假设员工索引有一个 ID、批次、状态和多个其他列。我有一张表,每次员工索引中的列发生变化时,我都会在其中进行跟踪。我想在原始员工行旁边显示某些列用于等于其他值的日期以及稍后导出的日期。
当然,我尝试创建一个显示多个值的表单,添加一个文本框来保存我的额外信息,并为 VBA 中的每个 Form_Current 事件更改文本框的值。
Private Sub Form_Current()
Me.txtPhaseOne = SimpleLookup("SELECT TOP 1 ChangeDate FROM EmployeeVariables WHERE VariableName = ""Batch"" AND EmployeeID = " & Me.Recordset("ID Number") & " ORDER BY ChangeDate ASC", "ChangeDate")
End Sub
直到我意识到日期被设置为当前记录日期应该是什么 [
然后我尝试加入:
SELECT
EmployeeIndex.[ID Number],
EmployeeIndex.Batch,
EmployeeIndex.Status,
EmployeeIndex.[First name],
EmployeeIndex.[Last name],
EVA.ChangeDate as Phase1
FROM
EmployeeIndex
(SELECT TOP 1 ChangeDate FROM EmployeeVariables WHERE EmployeeID = EmployeeIndex.[ID Number] ORDER BY CHangeDate) EVA
如果我可以预取EmployeeIndex.[ID Number],这会起作用。 (我没有为这些列命名)除了我没有任何线索而且我正在冒烟。
SELECT
EmployeeIndex.[ID Number],
EmployeeIndex.Batch,
EmployeeIndex.Status,
EmployeeIndex.[First name],
EmployeeIndex.[Last name],
EVA.ChangeDate as Phase1
FROM
EmployeeIndex
INNER JOIN
(SELECT TOP 1 EmployeeID, ChangeDate FROM EmployeeVariables WHERE ORDER BY ChangeDate) EVA
ON EmployeeIndex.[ID Number] = EVA.EmployeeID
【问题讨论】:
标签: sql vba ms-access ms-access-2016