我不是MS Access的专家,我已经获得了一个基本上有超过十万条记录的文本文件,并且被要求将该文本文件加载到MS访问数据库中。据我所知MySQL,我首先使用正常的加载文本文件命令将该文本文件上传到MySQL数据库,它按预期工作。但是,在Access 2003中,我转到文件菜单以获取外部数据并浏览文本文件,在我选择文件后它没有做任何事情。
我已经尝试通过SQL转储加载,我创建了一个表,切换到SQL查询但我无法复制粘贴所有这些插入命令,事实上它说价值太大而无法输入由于记录号很大,我无法逐个粘贴它们。
任何一个帮助?我将不胜感激。
答案 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
我建议使用制表符或逗号分隔方法。当您执行文件 - >获取外部数据时,您应该看到一个允许导入文本(分隔)文件的向导启动。