我正在尝试将某些记录从某个表附加到新表中, 当我尝试它时,我无法附加值 到新表格,即"表1和#34;在这种情况下,可能是数据没有附加到表中的原因是什么?
答案 0 :(得分:0)
从我的代码中可以看出,您只是将数据库中一个表的记录附加到同一数据库中的另一个表中。您不需要使用Recordset对象来完成此任务; INSERT INTO查询将完成您想要的任务。
Dim strSQL as String
Dim db as DAO.Database
Set db = CurrentDb
strSQL = "INSERT INTO Table1 ( UPI, COMPANY ) " & _
"SELECT INPUT_TBL.ID, INPUT_TBL.COMPANY FROM INPUT_TBL"
db.Execute strSQL, dbFailOnError
Set db = Nothing
请注意,我使用CurrentDb作为db对象,假设当前数据库与C:\ Users \ test.accdb中的数据库相同。如果情况并非如此,那么您需要做以下两件事之一:
如果您可以将这两个表作为链接表添加到运行此代码的数据库中,则可以使用与上面相同的代码。有关如何将表从外部数据库添加到当前数据库的说明,请访问:http://office.microsoft.com/en-us/access-help/import-or-link-to-data-in-another-access-database-HA001227658.aspx#BM3以及互联网上的许多其他位置。
如果由于某种原因无法将链接表添加到数据库,可以将IN子句添加到以前的SQL字符串中,该字符串将变为:
Dim strSQL as String
Dim db as DAO.Database
Dim dbname as String
Set db = CurrentDb
dbname = "C:\Users\test.accdb"
strSQL = "INSERT INTO Table1 ( UPI, COMPANY ) IN """ & dbname & """ " & _
"SELECT INPUT_TBL.ID, INPUT_TBL.COMPANY FROM INPUT_TBL IN """ & dbname & """"
db.Execute strSQL, dbFailOnError
Set db = Nothing
此代码允许您从外部数据库中的Table1中选择数据,并将其添加到同一外部数据库中的INPUT_TBL。