首页 > 解决方案 > 缺少 ' - VBA 中的 SQL 语法问题

问题描述

我正在尝试在 VB Access 中运行带有变量的 SQL 语句。我收到语法问题的错误。我想我在声明中缺少 ' 或 ",但我不知道该怎么做。

这是代码。

If (rs.RecordCount <> 0) Then 
   rs.MoveFirst


Do While rs.EOF = False
TempExportCount = TempExportCount + 1
Checkdatacsv = rs![FileName68]
OriginalFileName = rs![FileName]

'***
'This is the variable - batch number
'*** 

BatchNO = rs![BatchNumber] 

FullPath = DirectoryPath & Checkdatacsv




DoCmd.TransferText acImportDelim, "AP-csv-Import", "tblAP_Payable_2", FullPath, False

Dim SQL2 As String

'***
'This is the statement
'*** 

SQL2 = "UPDATE tblAP_Payable_2 SET tblAP_Payable_2.BNO = " & BatchNO & "WHERE tblAP_Payable_2.BNO = 0;"


DoCmd.RunSQL SQL2

DoCmd.OpenQuery "qDEL_AP_BLank", acViewNormal, acEdit

导入 csv 文件中的每一行时,表中会填充 BatchNO,因此我会知道每条记录是从哪个文件导入的

标签: vbams-access

解决方案


最有可能的是,BatchNo是文本,因此需要引号,并且 - 如前所述 - 你错过了一个空格:

SQL2 = "UPDATE tblAP_Payable_2 SET tblAP_Payable_2.BNO = '" & BatchNO & "' WHERE tblAP_Payable_2.BNO = 0;"

推荐阅读