0
Я пытаюсь использовать оператор SQL UPDATE для условного заполнения некоторых полей таблицы на основе значения другого поля. По какой-то причине я получаю сообщение об ошибке, в котором говорится, что он не может найти поле | 1. Я проверил ссылку на таблицу и написание полей, но не могу понять, почему она не может их найти. Код (это strUpdateProd линия, которая вызывает ошибку):Почему инструкция sql update не распознает ссылки на поле таблицы
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
Это работало. Благодарю. Думаю, я все еще смущен тем, где пунктуация требуется при построении SQL-запроса в Access VBA. – Sphere
Ваш оригинальный код попытался связать переменную «снаружи» SQL, которая [tblProductImport]. [InvestSplit1] - нет. – Gustav