访问 SELECT 语句和硬编码值

Access SELECT Statement and Hard coded Value

这是我的 VB SQL 语句,应用于 Form_Current 上未绑定列表框的行源:

SelectionSQL = "SELECT tbl_Patches_Cisco_SAs_Applicability.PatchID, tbl_Patches_Cisco_SAs_Applicability.OS 
      FROM tbl_Patches_Cisco_SAs_Applicability 
      WHERE (((tbl_Patches_Cisco_SAs_Applicability.PatchID)=[Forms]![Patch_Management_Cisco_Stage2]![Publication_ID]));"

效果很好,唯一的问题是我希望行源包含 "NA" 的硬编码值,而不必创建关联记录。这可能吗?如何实现?即以某种方式将 NA 添加到行源?

您可以使用 UNION 查询,将单行虚构值添加到您现有的值中。

SELECT a.PatchID, a.OS
FROM tbl_Patches_Cisco_SAs_Applicability AS a
WHERE a.PatchID=[Forms]![Patch_Management_Cisco_Stage2]![Publication_ID]
UNION ALL
SELECT 0 AS PatchID, 'NA' AS OS
FROM Dual;

Dual可以是任何table或查询其中returns只有一行。为此,我使用自定义 table:CreateDualTable()

一种可能是使用 UNION 查询:

SelectionSQL = "SELECT tbl_Patches_Cisco_SAs_Applicability.PatchID,
    tbl_Patches_Cisco_SAs_Applicability.OS FROM tbl_Patches_Cisco_SAs_Applicability WHERE
    (((tbl_Patches_Cisco_SAs_Applicability.PatchID)=[Forms]![Patch_Management_Cisco_Stage2]![Publication_ID])) 
    UNION SELECT TOP 1 0, 'NA' FROM tbl_Patches_Cisco_SAs_Applicability"