【问题标题】:VBA - Upload data from Excel to Access without Access installedVBA - 在未安装 Access 的情况下将数据从 Excel 上传到 Access
【发布时间】:2013-04-25 08:29:28
【问题描述】:

我对 VBA 还很陌生,但我正在尝试将数据从 Excel 工作簿上传到未安装 Access 的计算机上的 Access 数据库表中。我在网上搜索了解决方案,但还没有找到任何可以使用我的代码的解决方案。

我得到的错误代码是...429 cannot create activex component

我在 Excel 工作簿中设置了一些 VBA 代码,它调用 Access 中的 Sub [在安装了 Access 的机器上工作] 但我不知道如果机器没有正确的代码应该是什么已安装访问权限。

Sub Upload_SiteObsData_Excel_To_Access(Database_Path)

Database_Path = "\\Path\db1.mdb"

Dim acApp As Object
Dim db As Object

Set acApp = CreateObject("Access.Application")

acApp.OpenCurrentDatabase ("\\Path\db1.mdb")

Set db = acApp
acApp.Run "Upload_SiteObsData_to_Access"
acApp.Quit
Set acApp = Nothing

End Sub

Access中的流程如下:

Option Compare Database
Option Explicit

Dim Excel_Path As String
Dim Excel_Range As String
Dim UserNameOffice As String

Dim Excel_File_TechForm As String
Sub SetUp_Variables()

UserNameOffice = CreateObject("wscript.network").UserName

Excel_Path = "C:\Documents and Settings\" & UserNameOffice & "\Desktop\"
Excel_Range = "MyData"

Excel_File_TechForm = "SiteObsForm_v0.2.xls"

End Sub

Sub Upload_SiteObsData_to_Access()

SetUp_Variables
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TBL_SiteObsData",   Excel_Path & Excel_File_TechForm, True

End Sub

如果能提供任何帮助,我将不胜感激。提前致谢

【问题讨论】:

  • 您不必打开访问权限即可访问数据库。您可以运行任何其他兼容的工具来打开数据库。阅读ADODB 和不同的sql strings
  • @user2338876 Yoy 可以看看 Acess Runtime

标签: ms-access excel vba


【解决方案1】:

我认为您必须找到解决此问题的另一种方法,如果没有安装访问权限,Excel 无法创建 "Access.Application" 对象,它完全不知道访问权限是什么。

您可以改为从 Access 中提取数据吗?

【讨论】:

  • 您好,它的目的是将位于不同地理区域[但连接到同一网络]的多个用户的表单数据上传到主数据库。在每台计算机上安装 Access 是我们试图避免的额外费用。
  • 是有人在运行访问应用程序,还是只是一个数据存储?
  • 访问只是数据存储
【解决方案2】:

我只是在玩弄一些 Excel VBA 代码,以下似乎可以工作:

Option Explicit

Sub Upload_Excel_to_Access()
Dim con As Object  '' ADODB.Connection
Set con = CreateObject("ADODB.Connection")  '' New ADODB.Connection
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=C:\Users\Public\Database1.accdb;"
con.Execute _
        "INSERT INTO TBL_SiteObsData " & _
        "SELECT * FROM [Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=C:\Users\Public\Book1.xlsm].[Sheet1$]"
con.Close
Set con = Nothing
End Sub

【讨论】:

  • 嗨,戈德,看起来不错。我注意到您正在使用 Office 2010...我们仍在运行 Office 2003。您知道 2003 的语法应该是什么,我可以试一试。非常感谢
【解决方案3】:

我第一次通过 VBA 将 Excel 连接到 Access 时已完成此操作,我确信它可以使用 Gord Thomson 提供的代码工作。建立 ADODB 连接并执行追加查询。

【讨论】:

    猜你喜欢
    • 2018-09-13
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2015-07-24
    • 2018-09-09
    相关资源
    最近更新 更多