为什么更新 sql 语句无法识别 table 字段引用

Why an update sql statement won't recognize table field references

我正在尝试使用 UPDATE SQL 语句根据另一个字段的值有条件地填充某些 table 字段。出于某种原因,我收到一条错误消息,指出找不到 |1 字段。我已经检查了字段的 table 引用和拼写,但无法弄清楚为什么找不到它们。代码是(导致错误的是 strUpdateProd 行):

Private Sub btnProduct_Click()

    Dim dlg As FileDialog
    Dim strFileName As String
    Dim strUpdateProd As String

    Set dlg = Application.FileDialog(msoFileDialogFilePicker)

    With dlg
        .Title = "Select Audit File to Import"
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Text Files", "*.txt", 1
        If .Show = -1 Then
            strFileName = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With

    DoCmd.RunSQL ("DELETE * FROM tblProductImport")
    DoCmd.TransferText acImportFixed, "Product Import Spec", "tblProductImport", strFileName

    strUpdateProd = "UPDATE [tblProductImport] " _
        & "SET [tblProductImport].[Register] = '" & IIf([tblProductImport].[InvestSplit1] = "R", "RRSP", "TFSA") & "' " _
        & "WHERE [tblProductImport].[HolderID] IS NOT NULL;"

    DoCmd.RunSQL strUpdateProd
    DoCmd.SetWarnings True

End Sub

试试这个:

strUpdateProd = "UPDATE [tblProductImport] " _
    & "SET [tblProductImport].[Register] = IIf([tblProductImport].[InvestSplit1] = 'R', 'RRSP', 'TFSA') " _
    & "WHERE [tblProductImport].[HolderID] IS NOT NULL;"