MS Access更新查询要求参数值 - 查询取决于选择查询

时间:2016-03-03 16:39:12

标签: ms-access sql-update

下面的UPDATE查询将qry_Breakd_DYFYHAS_CountRecsDateRange.CountRecords_InDateRange解释为参数并询问参数值。

qry_Breakd_DYFYHAS_CountRecsDateRange查询有效,并提供数字:8。

Update查询的内容:

    UPDATE tbl_total_listenings_calcs 
    SET tbl_total_listenings_calcs.Total_listenings_tbl_Data_DateRange = qry_Breakd_DYFYHAS_CountRecsDateRange.CountRecords_InDateRange;

" qry_Breakd_DYFYHAS_CountRecsDateRange"的内容查询:

    SELECT count(*) AS CountRecords_InDateRange
    FROM tbl_Data, tbl_DateFromTo
    WHERE (((tbl_Data.Date_Listening) Between tbl_DateFromTo.Date_From And tbl_DateFromTo.Date_To));

在适用的两个查询中寻求有关更改内容的建议和建议,以使update查询正常工作。

1 个答案:

答案 0 :(得分:1)

UPDATE仅引用tbl_total_listenings_calcs,并且它未加入任何其他表或查询。因此,当Access看到qry_Breakd_DYFYHAS_CountRecsDateRange.CountRecords_InDateRange时,它只知道它不是查询的数据源之一,所以假设它必须是参数。

使用DLookup()CountRecords_InDateRange查询中获取qry_Breakd_DYFYHAS_CountRecsDateRange值。

UPDATE tbl_total_listenings_calcs 
SET Total_listenings_tbl_Data_DateRange = 
    DLookup
        (
            "CountRecords_InDateRange",
            "qry_Breakd_DYFYHAS_CountRecsDateRange"
        );

您可以检查它是否适用于子查询而不是DLookup() ...

UPDATE tbl_total_listenings_calcs 
SET Total_listenings_tbl_Data_DateRange = 
    (
        SELECT CountRecords_InDateRange
        FROM qry_Breakd_DYFYHAS_CountRecsDateRange
    );

但是,有时Access会将带有子查询的UPDATE视为“not updateable”。我不确定在这种情况下会发生什么。但是DLookup()肯定会奏效。