MS Access SQL语句追加
问题描述:
我对MS Access和SQL相对较新。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")
答
保存查询。然后你就可以从代码中调用它:
CurrentDb.QueryDefs("NameOfYourAppendQuery").Execute
或没有查询:
Dim Sql As String
Sql = "<Your SQL string>"
Debug.Print Sql ' Check SQL.
CurrentDb.Execute Sql
答
您是否知道,在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; "
你能告诉我们你有错误的vba代码吗? 'SQL'显示看起来不错,但是在你如何将它转换为'VBA'的过程中可能存在错误。 – Dave
这有点太长了:) – Tim
根据你的语法错误,我有一次快速猜测,但即使你只是发布'vba'语句来设置你的'SQL',它应该足以确定问题(假设我的猜测是不正确的) – Dave