excel - 在 MS Excel 中导入访问表
问题描述
我必须从 Access 文件、Test.accdb 和名为“CONFIG”的表中导入信息。
我有许多 Access 文件,它们总是以相同的方式生成,感兴趣的表总是“配置”。
这个想法是提取所有这些表以在 Excel 中编译它们的数据库。
没有任何 Access 经验,我使用 Excel 中的宏记录器:
ActiveWorkbook.Queries.Add Name:="CONFIG", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Access.Database(File.Contents(""C:\Users\Astrashar\Desktop\Projet\Test.accdb""), [CreateNavigationProperties=true])," & Chr(13) & "" & Chr(10) & " _CONFIG = Source{[Schema="""",Item=""CONFIG""]}[Data]" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " _CONFIG"
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""CONFIG"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [CONFIG]")
.ListObject.DisplayName = "CONFIG"
.Refresh BackgroundQuery:=False
End With
该代码有效,但是当我尝试在代码中修改“C:\Users\Astrashar\Desktop\Projet\Test.accdb”以放置一个变量时,将其称为“Path”,我得到一个错误:
1004 “应用程序定义或对象定义错误”。
重新设计的代码如下:
Dim Path
Path = "C:\Users\Astrashar\Desktop\Projet\Test.accdb"
ActiveWorkbook.Queries.Add Name:="CONFIG", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " ' Source = Access.Database(File.Contents(""Path""), [CreateNavigationProperties=true])," & Chr(13) & "" & Chr(10) & " _CONFIG = Source{[Schema="""",Item=""CONFIG""]}[Data]" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " _CONFIG"
我尝试将路径定义为字符串、添加、删除双引号等。
解决方案
连接变量是通过&
而不是将它们放在"
. 否则,您指的是变量本身的名称,而不是它的值。在具体问题中,这是:
...File.Contents(""Path""), [CreateNavigationProperties...
应该:
...File.Contents(" & Path & "), [CreateNavigationProperties...
能够得到 的值Path
。某处可能还有另一个错误。
这是一个最小的示例,将 Excel 中的字符串变量与其他字符串连接起来:
Sub TestMe()
Dim path As String
path = "C:\Users\Astrashar\Desktop\Projet\Test.accdb"
ActiveSheet.Range("A1") = "Some predefined text " + path
End Sub
在 A1 中得到这个:
推荐阅读
- sql - 我想知道使用 INNER JOIN 和相等运算符更快,或者当我尝试通过另一个表的列过滤表中的数据时使用 IN
- oracle19c - 无法在 19c 中创建带有检查约束 JSON 的 oracle 表
- ms-access - 下拉菜单中已选择的条目显示名称(Access 2016)
- javascript - CSS动画无尽的水平滚动 - 鼠标悬停暂停
- go-cd - 在 Windows 的 GoCD 管道中添加材料时面临 SSL 证书问题错误
- xml - 在.net core webapi项目中存储xml静态字符串的位置
- amazon-s3 - 使用 lambda 文件流到 s3 文件上传
- powershell - Powershell 单元测试用例
- django - ModuleNotFoundError:没有名为“onbytes”的模块
- mongodb - 查询以查找特定时间和日期范围内的数据