【问题标题】:How to insert ADO Recordset into MS Access Table如何将 ADO 记录集插入 MS Access 表
【发布时间】:2012-11-22 15:45:37
【问题描述】:

问题

我想将当前记录集行插入到 MS Access 表中。我目前收到此错误

Syntax error (missing operator) in query expression 'rs[columnname]'

代码

这是我当前的代码,我正在尝试抓取所有列并将它们插入到新表中。

DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (rs[Configuration], rs[User Input / Output])"

我不太确定我错过了什么。

【问题讨论】:

    标签: vba ms-access insert ms-access-2010


    【解决方案1】:

    如果您的表 tblSummary_Appl_Usage_score 中的类型字段是数字,请使用:

    DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (" & rs![Configuration] & "," & rs![User Input / Output] & ")"
    

    如果类型是字符串,使用这个:

    DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (""" & rs![Configuration] & """,""" & rs![User Input / Output] & """)"
    

    【讨论】:

      【解决方案2】:

      DAO recordset 的形式打开tblSummary_Appl_Usage_score。然后使用其.AddNew 方法创建一个新行并存储您的 ADO 记录集中的值。

      Dim db As DAO.database
      Dim rsDao As DAO.Recordset
      Set db = CurrentDb
      Set rsDao = db.OpenRecordset("tblSummary_Appl_Usage_score", dbOpenTable, dbAppendOnly)
      rsDao.AddNew
      rsDao![Configuration] = rs![Configuration]
      rsDao![User Input / Output] = rs![User Input / Output]
      rsDao.Update
      

      使用这种方法,您的代码无需根据记录集字段数据类型进行不同的调整。只要匹配的字段是相同或兼容的数据类型,无论数据类型如何,它都能正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-04
        • 1970-01-01
        相关资源
        最近更新 更多