用于追加的MS Access SQL语句

时间:2017-06-29 07:43:45

标签: sql vba ms-access

我对MS Access和SQL相对较新。

我在访问数据库中有一个查询将一个表附加到另一个表,按特定列递增排序,然后我用它来添加列以分配唯一标识符。

查询本身在访问中运行良好,但是,我想在单击按钮时将其写入要执行的表单的VBA代码中。

访问中的SQL视图为我提供了以下代码,但是当我将其写入我的代码时,它说明运算符丢失了,是否有人可以提出建议?

代码:

DoCmd.RunSQL ("INSERT INTO tblImport ( CustomerAccount, OrderReference, OrderDate, DueDate, CustomerRef," & _
    "StockNo, OrderQuantity, AddressName, Add1, Add2, Add3, Town, County, PostCode, Country, ServiceLine )" & _
    "SELECT tblImport2.CustomerAccount, tblImport2.OrderReference, tblImport2.OrderDate, tblImport2.DueDate," & _
    "tblImport2.CustomerRef, tblImport2.StockNo, tblImport2.OrderQuantity, tblImport2.AddressName, tblImport2.Add1," & _
    "tblImport2.Add2, tblImport2.Add3, tblImport2.Town, tblImport2.County, tblImport2.PostCode, tblImport2.Country," & _
    "tblImport2.ServiceLine" & _
    "FROM tblImport2" & _
    "ORDER BY tblImport2.OrderReference")

2 个答案:

答案 0 :(得分:1)

保存查询。然后你可以从代码中调用它:

CurrentDb.QueryDefs("NameOfYourAppendQuery").Execute

或者没有查询:

Dim Sql As String

Sql = "<Your SQL string>"
Debug.Print Sql     ' Check SQL.
CurrentDb.Execute Sql

答案 1 :(得分:1)

你知道在VBA中指定一个多行字符串(因为你的查询在这里),你需要像这样一起加入这些行吗?否则VBA不会知道它应该是一个字符串。

mySql = "INSERT INTO tblImport ( CustomerAccount, OrderReference, OrderDate, DueDate, CustomerRef, StockNo, OrderQuantity, AddressName, Add1, Add2, Add3, Town, County, PostCode, Country, ServiceLine ) " & _
"SELECT tblImport2.CustomerAccount, tblImport2.OrderReference, tblImport2.OrderDate, tblImport2.DueDate, tblImport2.CustomerRef, tblImport2.StockNo, tblImport2.OrderQuantity, tblImport2.AddressName, tblImport2.Add1, tblImport2.Add2, tblImport2.Add3, tblImport2.Town, tblImport2.County, tblImport2.PostCode, tblImport2.Country, " & _
"tblImport2.ServiceLine " & _
"FROM tblImport2 " & _
"ORDER BY tblImport2.OrderReference; "