Access ADO 中的 GO 语句

Posted

技术标签:

【中文标题】Access ADO 中的 GO 语句【英文标题】:GO statement in Access ADO 【发布时间】:2019-10-10 05:59:16 【问题描述】:

我正在尝试在从 MS Access 2019 中的 VBA 代码传递到 SQL Server 2017 的查询中使用 GO 语句。执行导致运行时错误:

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

【问题讨论】:

Incorrect syntax near 'GO'的可能重复 【参考方案1】:

GO 不是 Transact-SQL 语句,而是可识别的命令 由 Sql Server Management Studio(即 SSMS)、SQLCMD 和 OSQL 实用程序。

Reference

你不需要在commandText中使用GO语句

【讨论】:

啊,就这么简单!谢谢。

以上是关于Access ADO 中的 GO 语句的主要内容,如果未能解决你的问题,请参考以下文章

在 ADO.NET 中使用 ODBC 调用预定义的 Access 查询

access2007数据库用SQL语句查询时间段内的数据

为啥 ADO 记录集返回的记录比基础 Access 查询多

求助,求向access2003版本数据库中加入新纪录的程序代码(VC6.0,MFC,ADO)

如何在VBA中用ADO连接远程的access数据库

Excel VBA 导出到 Access:ADO 错误