Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access VBA-在未安装Access的情况下将数据从Excel上载到Access_Ms Access_Excel_Vba - Fatal编程技术网

Ms access VBA-在未安装Access的情况下将数据从Excel上载到Access

Ms access VBA-在未安装Access的情况下将数据从Excel上载到Access,ms-access,excel,vba,Ms Access,Excel,Vba,我是VBA新手,但我正在尝试从未安装Access的计算机将数据从Excel工作簿上载到Access数据库表。我已经在网上搜索了一个解决方案,但还没有找到任何可以使用我的代码的东西 我得到的错误代码是…429无法创建activex组件 我在Excel工作簿中设置了一些VBA代码,该代码调用Access中的一个子项[该子项在安装了Access的机器上工作],但如果该机器没有安装Access,我不知道正确的代码应该是什么 Sub Upload_SiteObsData_Excel_To_Access(D

我是VBA新手,但我正在尝试从未安装Access的计算机将数据从Excel工作簿上载到Access数据库表。我已经在网上搜索了一个解决方案,但还没有找到任何可以使用我的代码的东西

我得到的错误代码是…429无法创建activex组件

我在Excel工作簿中设置了一些VBA代码,该代码调用Access中的一个子项[该子项在安装了Access的机器上工作],但如果该机器没有安装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

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

我认为您必须找到解决此问题的另一种方法,如果未安装access,Excel无法创建
“access.Application”
对象,它完全不知道access是什么


你能从Access中提取数据吗?

我想你必须找到解决这个问题的另一种方法,没有安装Access,Excel无法创建
“Access.Application”
对象,它完全不知道Access是什么


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

我只是在玩弄一些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

我只是在玩弄一些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

我第一次通过VBA将Excel连接到Access时就这样做了,我确信它可以使用提供的代码工作。建立ADODB连接并执行追加查询。

我第一次通过VBA将Excel连接到Access时就这样做了,我确信它可以使用提供的代码工作。建立ADODB连接并执行追加查询。

访问数据库不必打开access。您可以运行任何其他兼容工具来打开数据库。有一个读取和不同的@user2338876 Yoy可能有一个访问access运行时你不必打开access来访问数据库。您可以运行任何其他兼容工具来打开数据库。阅读和其他@user2338876 Yoy可能会查看Acess RuntimeHi,其目的是将位于不同地理区域[但连接到同一网络]的多个用户的表单数据上载到主数据库。在每台计算机上安装Access是我们试图避免的额外费用。是有人在运行Access应用程序,还是它只是一个数据存储?Access只是一个数据存储。它的目的是将位于不同地理区域[但连接到同一网络]的多个用户的表单数据上载到主数据库。在每台计算机上安装Access是我们试图避免的额外费用。是有人运行Access应用程序,还是它只是一个数据存储?Access只是数据存储Hi Gord,看起来不错。我注意到您正在使用Office 2010…我们仍在运行Office 2003。你知道2003年的语法应该是什么吗?我可以试试。多谢希戈尔,看起来不错。我注意到您正在使用Office 2010…我们仍在运行Office 2003。你知道2003年的语法应该是什么吗?我可以试试。非常感谢