将mysql转储或文本文件加载到microsoft access 2003中

时间:2010-09-08 08:29:24

标签: ms-access mysqldump

我不是MS Access的专家,我已经获得了一个基本上有超过十万条记录的文本文件,并且被要求将该文本文件加载到MS访问数据库中。据我所知MySQL,我首先使用正常的加载文本文件命令将该文本文件上传到MySQL数据库,它按预期工作。但是,在Access 2003中,我转到文件菜单以获取外部数据并浏览文本文件,在我选择文件后它没有做任何事情。

我已经尝试通过SQL转储加载,我创建了一个表,切换到SQL查询但我无法复制粘贴所有这些插入命令,事实上它说价值太大而无法输入由于记录号很大,我无法逐个粘贴它们。

任何一个帮助?我将不胜感激。

3 个答案:

答案 0 :(得分:2)

我不清楚是什么原因导致您无法直接导入文本文件。您必须提供有关您在Access中尝试的内容以及出错的详细信息。

但是如果你已经在MySQL中获得了数据并想从那里导入,那么为你的MySQL数据库创建一个DSN,然后使用ODBC中的IMPORT,指向DSN,你就可以导入表了从MySQL进入Access。它也可以一次使用多个表。

答案 1 :(得分:1)

由于语法不同,您可能无法将mySQL转储直接导入Access。

一种方法是使用像HeidiSQL这样的图形工具将mySQL数据导出为CSV,这些数据应该很容易进入Access。

另一个想法是将转储导入mySQL,然后使用ODBC Connector.

从Access访问mySQL

答案 2 :(得分:0)

这是一个文本文件,例如制表符分隔,还是逗号分隔?

或者,这是一个sql命令的文件吗?

访问应该没有来自mySql的文本导出文件的麻烦。但是,访问不能直接使用sql命令的文本文件来插入数据。

您可以将文件导出为制表符分隔符,或者如果可能,您甚至可以将访问数据库直接链接到mySql服务器,并使用一些append / make表。

另一种方法是在本地计算机上安装mySql,让它读取sql脚本,然后导出为制表符或逗号文本文件,或者只是直接链接访问本地运行的MySql实例,并使用追加查询拉那个数据。

但是,如果那个sql dump将每个sql命令用一个;那么一小段VBA代码就可以读取那些sql命令。这样的事情可以奏效:

  Sub SqlScripts()

     Dim vSql()     As String
     Dim vSqls      As Variant
     Dim strSql     As String
     Dim intF       As Integer

     intF = FreeFile()
     Open "c:\sql.txt" For Input As #intF
     strSql = Input(LOF(intF), #intF)
     Close intF
     vSql = split(strSql, ";")

     On Error Resume Next
     For Each vSqls In vSql
        CurrentDb.Execute vSqls
        Debug.Print "--->" & vSqls
     Next


  End Sub

我建议使用制表符或逗号分隔方法。当您执行文件 - >获取外部数据时,您应该看到一个允许导入文本(分隔)文件的向导启动。