【问题标题】:Import SQL tables as data into access Db将 SQL 表作为数据导入 access Db
【发布时间】:2019-09-13 09:54:41
【问题描述】:

我有一个 SQL 数据库(让我们使用北风),它有许多表(表数未知)。我想将这些表作为 DATA(而不是表)导入到 MTT_Table 中的 MS 访问数据库中

所有标准导入,将表创建为 ms 访问范围内的物理表,而不是数据。 我在 MS Access 中有一个表,需要在其他系统中存储所有表的名称 - 不确定这是否有意义

有没有办法读取无限数量的表并将它们作为数据填充,通过 VBA 使用 odbc 连接

预期的输出是将表名视为数据值,并可能使用有关表的元数据填充 MS 访问行

【问题讨论】:

  • 嗨,谢谢,但这会在 MS 访问中导入并创建物理表。我正在考虑将 sql 中的表作为数据加载到访问中名为 MTT_Table 的表中。我有一个需要存储所有表名的 ms 访问数据库 - 不确定这是否更有意义

标签: sql-server vba odbc ms-access-2010


【解决方案1】:

使用信息模式在 SQL server 中创建视图:

CREATE VIEW dbo.Sample_View
AS
   SELECT TABLE_NAME 
   FROM [Your_Database].INFORMATION_SCHEMA.TABLES 
   WHERE TABLE_TYPE = 'BASE TABLE' 

现在导入此视图以按照link 中的步骤进行访问

【讨论】:

  • 谢谢,试试这个。有没有其他方法可以在不创建视图的情况下做到这一点?我要问的原因是我可能必须导入 300 个系统价值的表,而且并非所有表都在 SQL 中,正在测试访问和 sql 中的逻辑,但最终存储系统将是一个 sql 数据库,需要通过 odbc 连接并从其他系统中提取它
  • @Jext 你应该试试 Erik A 的解决方案。
【解决方案2】:

您的问题有点宽泛(您希望从表中获得什么信息),但通常可以通过通过 ODBC 查询 INFORMATION_SCHEMA 元表来实现。

SELECT * INTO MTT_Table
FROM [ODBC;Driver={SQL Server};Server=my\server;Database=myDb;Trusted_Connection=Yes;].INFORMATION_SCHEMA.TABLES

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 2012-02-13
    • 2011-06-08
    • 2014-03-22
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多