【发布时间】:2019-03-15 10:18:30
【问题描述】:
寻找一种可以获取 Access 数据库并导出类似内容的方法:
| Type | Name | Field | Field Type | Example values | SQL |
| Table | Table1 | Field1 | String | Field example 1/2/3 | |
| Table | Table1 | Field2 | String | Field example 1/2/3 | |
| Table | Table1 | Field3 | String | Field example 1/2/3 | |
| ViewOutput | SelectedCols | Field 1 | ... | Field example 1/2/3 | |
| ViewOutput | SelectedCols | Field 2 | ... | Field example 1/2/3 | |
| ViewDefinition | SelectedCols | Field 1 | Field Type | | SELECT [field1], [field2] from [Table1] |
换句话说:
- 显示的电子表格/数据集
- 按名称列出的所有表,以及基础字段名/类型/显示的一些示例列值 (*)
- 按名称列出的所有视图,以及定义的字段名和示例值 (*)
* 理想情况下/可选地,我得到三个用逗号分隔的示例字段值
这将是从 Access 迁移到更重要的数据库的一个惊人的起点,非常感谢您的帮助。
【问题讨论】:
-
这个问题本身就太宽泛了,因为它需要大量代码来将 Access 连接到 Excel、遍历表和查询、从表中获取示例值等。但是,Access 确实内置数据库记录器,只需单击一个按钮即可完成大约一半的工作。
-
Excel 输出是可选的,只要输出的是表格数据(例如 CSV)。一个体面的答案可能是如何在 VBA Access 中公开/读取内部以导出/进一步处理,恕我直言,不太宽泛。我可以想象不同的价值观,使其过于宽泛,使其成为可选。
-
最后:Access 数据库记录器导出非结构化数据 (PDF),恕我直言,这不是一个可行的解决方案。
-
你可以看
ADO然后用这个连接数据库,并打开schema,connection.openschema()看这个参数,告诉你大部分你想要什么,我建议您对表格进行select top x查询,以便为您提供示例结果。 -
Here 有一个获取表和字段的例子。您也可以调整它以获取仅更改几个单词的查询(而不是
For Each tdf In db.TableDefs,您应该使用For Each qdf In db.QueryDefs等等。