根据Access中不同表中其他两个字段中的值更新主表

时间:2018-12-10 01:50:12

标签: sql ms-access

我正在尝试从另一个表更新名为Link_pipe_type的主表字段。我想使用if条件更新Link_pipe_type,如果链接20为空,则link_pipe_type必须由link_pipe_50字段更新,否则必须由link_pipe_20更新。这是我的更新查询:

UPDATE
    tbl_Draftersreport_upload 
    INNER JOIN tbl_MASTER_List 
        ON tbl_Draftersreport_upload.Ref_ID = tbl_MASTER_List.Ref_ID
    SET
        tbl_MASTER_List.Link_pipe_type = IIF(
            ([tbl_Draftersreport_upload].[Link Pipe 20])="",
            ([tbl_Draftersreport_upload].[Link Pipe 50]),
            ([tbl_Draftersreport_upload].[Link Pipe 20])
);

我仍然无法使用值更新主表。错误:

  

由于由于违反验证规则而导致类型转换失败,Microsoft Access不会更新13个字段。

需要帮助!挣扎了2天。预先感谢

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:(检查是否为空)

UPDATE
tbl_Draftersreport_upload 
INNER JOIN tbl_MASTER_List 
    ON tbl_Draftersreport_upload.Ref_ID = tbl_MASTER_List.Ref_ID
SET
    tbl_MASTER_List.Link_pipe_type = IIF(
        IsNull([tbl_Draftersreport_upload].[Link Pipe 20]),
        ([tbl_Draftersreport_upload].[Link Pipe 50]),
        ([tbl_Draftersreport_upload].[Link Pipe 20])
);

在此处读取Null值和空白值: https://www.techrepublic.com/article/learn-the-differences-between-is-null-and-isnull-in-access/