【问题标题】:MySQL to MS AccessMySQL 到 MS Access
【发布时间】:2012-09-25 22:08:42
【问题描述】:

一段时间以来,我们一直在从远程 MS Access 数据库中检索数据,并通过简单的 SELECT * INTO 查询将其内容复制到本地 Access 数据库中。但是,我们目前处于迁移过程中,需要从 MySQL 数据库中检索数据并将其复制到本地 Access DB,因此上述查询由于显而易见的原因在这里不起作用。

现在看到我不能使用任何外部程序并且只允许在 VB.NET 中编写,我传输数据的方法是使用数据表。它完成了它的工作,但性能很糟糕。

因此,我的问题是,是否有一种仅使用 VB.NET 将数据从远程 MySQL 数据库传输/复制到本地 MS Access 的快速方法。

我当前的代码:pastebin.com/ELmkVFSc

【问题讨论】:

  • 将 MySQL 表添加为链接表,并以与您现在相同的方式查询它。

标签: mysql vb.net ms-access


【解决方案1】:

非常粗略:

Imports Microsoft.Office.Interop.Access.Dao

Module Module1

    Sub Main()
        Dim dbEng As New DBEngine()
        Dim ws As Workspace
        Dim db As Database
        ws = dbEng.CreateWorkspace("", "admin", "", WorkspaceTypeEnum.dbUseJet)
        db = ws.OpenDatabase("z:\\docs\\test.accdb", False, False, "")
        db.Execute("SELECT * INTO Newtable From [ODBC;DSN=MySQL;].test")

    End Sub

End Module

您也可以对这些行进行查询:

SELECT * INTO Newtable FROM
[ODBC;Driver={MySQL ODBC 5.1 Driver};Server=127.0.0.1;Database=test;User=usr;Password=pwd;CLIENT_MULTI_RESULTS;Option=3;].test;

【讨论】:

  • 感谢您的意见,但客户端 PC 没有安装必要的 ODBC 驱动程序,IT 管理员也不愿意安装它。还有其他方法吗?不使用 ODBC。
  • 即使使用链接表,您也需要驱动程序。你是如何创建数据表的?您的连接字符串的轮廓是什么?我想你可以从 MySQL 中写出一个 csv,然后运行一个 Microsoft 文本驱动程序来导入 Access。
  • 看起来您正在使用 MySQL Net 连接器。如果 IT 准备安装它,为什么不使用同一来源的 ODBC 驱动程序呢?奇怪的。除了说输出到 CSV 并导入到 MS Access 将比遍历记录集要快得多之外,我不确定我能否进一步帮助您。
  • 没关系,看来我被误导了,驱动程序确实安装了。您的解决方案有效。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 2010-11-30
  • 1970-01-01
  • 2015-10-14
  • 2012-02-14
  • 2015-08-19
相关资源
最近更新 更多