我对VBA还不熟悉,但我试图从没有安装Access的计算机上将数据从Excel工作簿上传到Access数据库表。我已经在网上搜索了一个解决方案,但还没有找到任何可以使用我的代码的东西。
我得到的错误代码是... 429无法创建activex组件
我在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
我非常感谢任何帮助。提前致谢
答案 0 :(得分:0)
我认为你必须找到解决这个问题的另一种方法,如果没有安装访问权限,Excel就无法创建"Access.Application"
对象,它只是完全不知道访问权限。
您可以从Access中提取数据吗?
答案 1 :(得分:0)
我只是愚弄了一些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
答案 2 :(得分:0)
我第一次通过VBA将Excel连接到Access时就完成了这项工作,我确信它可以使用 Gord Thomson 提供的代码。建立ADODB连接并执行追加查询。