Я пытаюсь выполнить некоторые запросы SQL в MS Access, но определенный запрос ведет себя очень странно и выдает ошибку, которая, как мне кажется, скрывает реальную проблему.Вот вопрос в вопросе:
objCmd.CommandText = "DECLARE @equipID varchar(50) DECLARE d
CURSOR FOR SELECT equipmentID FROM [EWOM].[dbo].[equipment] OPEN d"
& _
" FETCH NEXT FROM d INTO @equipID WHILE @@FETCH_STATUS = 0 BEGIN" &
_
" UPDATE [EWOM].[dbo].[Equipment] SET eqNum =
REPLACE(REPLACE(equipmentID, ' ', ''), '.', '') WHERE equipmentID =
@equipID" & _
" FETCH NEXT FROM d INTO @equipID End Close d DEALLOCATE d"
И это выдает ошибку
Неверное имя объекта 'EWOM.dbo.Equipment'
ОднакоЯ использовал несколько запросов с использованием одного и того же объекта, который работал отлично.Вот пример полностью работоспособного запроса:
objCmd.CommandText = "TRUNCATE TABLE [EWOM].[dbo].[Equipment]" & _
" INSERT INTO [EWOM].[dbo].[Equipment] (equipmentID, make, model,
equipmentName, status)" & _
" SELECT Equipment, Manufacturer, Model, Description, Status" & _
" FROM [Vp].[dbo].[bEMEM]"
Меня сбивает с толку то, что первый показанный мною запрос работает нормально в SQL Server Management Studio, но он не прошел, когда я перешел в Access.Истинная проблема связана с синтаксической ошибкой первого запроса?Буду признателен за любую помощь.
Вот полный код для рабочего запроса:
Dim Cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim objCmd As New ADODB.Command
Set Cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
Cnn.Open "DBName", "username", "password"
objCmd.ActiveConnection = Cnn
objCmd.CommandText = "TRUNCATE TABLE [EWOM].[dbo].[Equipment]" & _
" INSERT INTO [EWOM].[dbo].[Equipment] (equipmentID, make, model,
equipmentName, status)" & _
" SELECT Equipment, Manufacturer, Model, Description, Status" & _
" FROM [Vp].[dbo].[bEMEM] WHERE EMGroup = 20"
objCmd.CommandType = adCmdText
Set rst = objCmd.Execute
MsgBox "Update successful."
Cnn.close
Set Cnn = Nothing
Set rst = Nothing
Когда objCmd.commandText изменяется на первый отправленный мной запрос, он завершается неудачно.Все остальные мои запросы работают с использованием этого метода.