【问题标题】:Is it possible to append Excel data to an Access database file using VBA within Excel?是否可以在 Excel 中使用 VBA 将 Excel 数据附加到 Access 数据库文件?
【发布时间】:2014-05-14 17:54:28
【问题描述】:

我在 Excel 2010 工作表中有三个单元格,例如 a1、a2 和 a3。每次用户运行我的 Excel 宏时,我都需要它来获取这些单元格中的信息并将其附加到现有的 Access DB 文件中。这就是 db 文件中的所有内容,只是一个运行列表。

所以,我不想从 Access 导入。我希望这一切都发生在 Excel 端,最好完全不开放访问。这可能吗?或者我可以告诉我丈夫忘记这件事吗?

如果可能的话,有人可以告诉我如何去做吗?或者去哪里了解它?我对 Excel 中的 VBA 没问题,但对 Access 甚至数据库的经验为零。

谢谢!

【问题讨论】:

  • 绝对有可能。您可以从 Excel VBA 中访问 Microsoft Access 对象库,并与数据库建立 ADO 或 ODBC 连接,并在 Excel VBA 中运行 SQL 语句。
  • THIS QUESTION 的代码有望帮助您入门 :) 否则,Google 上有很多提示。从那里开始,如果您在实现代码时遇到特定问题,请相应地更新您的问题。如目前所述,要求资源以了解主题的问题通常是 SO 的禁区。
  • 感谢您的回复。我很抱歉我不是故意违反任何规则的。我非常感谢您的帮助。

标签: excel ms-access vba


【解决方案1】:

创建对Microsoft DAO 3.6 object library 的引用并开始使用此代码:

Sub DBInsert()
Dim DB As DAO.Database
Dim RS As DAO.Recordset

    ' open database
    Set DB = DAO.OpenDatabase("C:\Users\Myself\Desktop\MyDB.mdb")

    ' open table as a recordset
    Set RS = DB.OpenRecordset("Table1")

    ' add a record to the recordset
    RS.AddNew

    ' fill fields with data ... in this case from cell A1
    RS.Fields("Field1") = [A1]

    ' write back recordset to database
    RS.Update

    ' important! cleanup
    RS.Close

    ' forget to close the DB will leave the LDB lock file on the disk
    DB.Close

    Set RS = Nothing
    Set DB = Nothing
End Sub

在工作表上创建一个按钮并将此代码放在 Button_Click() 中,以便用户可以在所有输入完成后将数据发送到您的数据库。

更多资源:

Office 2013 / Data Access / How do I ...

Choosing ADO or DAO for Working with Access Databases

【讨论】:

  • @user3637835 :添加了“在哪里了解它”的更多资源
  • @user3637835 :欢迎...请检查并考虑接受答案,以便其他用户也可以受益。很高兴收到您提出的更多好问题。
猜你喜欢
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
相关资源
最近更新 更多