以编程方式向表中添加记录

时间:2014-06-13 06:21:01

标签: sql vba access-vba

我正在尝试将某些记录从某个表附加到新表中, 当我尝试它时,我无法附加值 到新表格,即"表1和#34;在这种情况下,可能是数据没有附加到表中的原因是什么?

1 个答案:

答案 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中的数据库相同。如果情况并非如此,那么您需要做以下两件事之一:

  1. 如果您可以将这两个表作为链接表添加到运行此代码的数据库中,则可以使用与上面相同的代码。有关如何将表从外部数据库添加到当前数据库的说明,请访问:http://office.microsoft.com/en-us/access-help/import-or-link-to-data-in-another-access-database-HA001227658.aspx#BM3以及互联网上的许多其他位置。

  2. 如果由于某种原因无法将链接表添加到数据库,可以将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。

相关问题