从密码保护的站点上的access.accdb文件进行Excel查询

因此,我可以使用POST请求和MSXML2.ServerHTTP60对象,在Excel VBA中提供Intranet密码等,从我们公司的SharePoint站点下载.accdb文件。 凉!

有了这个下载的文件,我可以使用这样的代码运行查询:

Dim connXXX As ADODB.Connection Dim aQuery As String Dim p As String Dim res As Object Dim connStr As String p = ThisWorkbook.Path & "\testBASE1.accdb" connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & p aQuery = "SELECT Header1 FROM Table1 WHERE ID = 4" Set connXXX = New ADODB.Connection connXXX.Open connStr Set res = connXXX.Execute(aQuery) MsgBox res.Fields(0) 

我真的想要做但是完全没有下载文件,所以我可以运行一个查询对Intranet上托pipe的.accdb文件。

我一直在使用.connectionString或放入“URL =”,而不是数据源,试图在这个代码上的一些变化…所有无济于事; 我不知道在哪里我把内部网用户名/密码…请帮助! 我经常在代码的connXXX.open部分得到我的错误。

1)这是可能的,2)如何?

破码:

 'ppp = "http://the_intranet_address_and_filename_with_extension" 'ppp = "URL=http://the_intranet_address_and_filename_with_extension" '' I've tried both above connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" aQuery = "SELECT Header1 FROM Table1 WHERE ID = 4" connStrBig = connStr & "Data Source=" & ppp connXXX.Provider = connStr connXXX.ConnectionString = ppp connXXX.Open 

通过VBA连接到密码保护的访问数据库是棘手的 – 我发现微软build议的语法甚至不工作…我已经得到了DAO连接与密码保护的数据库的工作,看到下面的代码,希望你可以拨弄与ADO一起使用的语法相同,或者只是一起切换:

 Public Sub sampleCode() Dim db As DAO.Database Dim dbPath As String Dim aQuery As String Dim pword As String Dim rs As DAO.Recordset dbPath = ThisWorkbook.Path & "\testBASE1.accdb" pword = "password" aQuery = "SELECT Header1 FROM Table1 WHERE ID = 4" Set db = Access.DBEngine.Workspaces(0).OpenDatabase(dbPath, True, False, ";PWD=" & pword) Set rs = db.Execute(aQuery) rs.MoveFirst MsgBox rs.Fields(0) End Sub 

希望这有助于TheSilkCode