GO заявление в Access ADO - PullRequest
       4

GO заявление в Access ADO

1 голос
/ 10 октября 2019

Я пытаюсь использовать оператор GO в запросе, переданном в SQL Server 2017 из кода VBA в MS Access 2019. В результате выполнения возникает ошибка времени выполнения:

80040e14 "Неверный синтаксис рядом с GO».

Точно такой же запрос, выполняемый в SSMS, работает нормально.

Что я делаю не так? Это работает, если я удаляю строку GO.

В модуле доступа:

Public SQLDB As Object
Public ADOcom As Object
Public Const adCmdText as Long = 1

Sub CreateDB()
  Dim sql As String, connectionstring As String

  connectionstring = "Driver={SQL Server Native Client 11.0};" & _
                     "Server=MySQLServer;" & _
                     "Trusted_Connection=yes;" & _
                     "Provider=SQLNCLI11;" & _
                     "DataTypeCompatibility=80;" & _
                     "MARS Connection=True;"

  Set SQLDB = CreateObject("ADODB.Connection")
  Set ADOcom = CreateObject("ADODB.Command")
  SQLDB.Open connectionstring
  Set ADOcom.ActiveConnection = SQLDB
  ADOcom.CommandType = adCmdText

  sql = "USE Master;" & vbCrLf & _
        "GO" & vbCrLf & _
        "CREATE DATABASE MyTest"

  ADOcom.CommandText = sql
  ADOcom.Execute
End Sub

1 Ответ

2 голосов
/ 10 октября 2019

GO - это не оператор Transact-SQL, а команда, распознаваемая утилитами Sql Server Management Studio (например, SSMS), SQLCMD и OSQL.

Ссылка

Вам не нужно использовать оператор GO в commandText

...