我不是MS Access的专家,我得到了一个文本文件,基本上有超过十万条记录,并已被要求加载到MS access数据库中的文本文件。据我所知,我首先使用普通的加载文本文件命令将该文本文件上传到MySQL数据库中,它就像预期的那样工作。然而,在Access 2003中,当我进入文件菜单获取外部数据并浏览文本文件时,它在我选择文件后什么也不做。
我尝试过通过SQL转储加载,我创建了一个表,切换到SQL查询,但我不能复制粘贴其中的所有insert命令,事实上,它显示值太大而无法输入,并且我不能一个接一个地粘贴,因为记录数很大。
有人能帮上忙吗?我会很感激的。
发布于 2010-09-09 06:23:07
我不清楚是什么原因导致您无法直接导入文本文件。您必须提供更多详细信息,说明您在Access中尝试了什么以及哪里出了问题。
但是,如果您已经在MySQL中获得了数据,并且想要从那里导入,请为您的MySQL数据库创建一个DSN,然后使用IMPORT from ODBC,指向该DSN,然后您就可以将表从MySQL导入到Access中。它还可以同时处理多个表。
发布于 2010-09-08 16:36:06
由于语法差异,您可能无法将mySQL转储直接导入Access。
一种方法是使用像HeidiSQL这样的图形工具将mySQL数据导出为CSV,这样应该很容易进入Access。
另一个想法是将转储文件导入mySQL,然后使用ODBC Connector.从Access访问mySQL
发布于 2010-09-08 17:26:12
这是一个文本文件,如制表符分隔的,还是逗号分隔的?
或者,这是一个sql命令文件吗?
对于从mySql中导出的文本文件,Access应该没有问题。但是,access不能直接使用sql命令的文本文件来插入数据。
您可以将文件导出为制表符分隔,或者如果可能,您甚至可以将access数据库直接链接到mySql服务器,并使用一些附加/生成表。
另一种方法是在本地计算机上安装mySql,让它读取sql脚本,然后导出为制表符或逗号文本文件,或者直接将访问链接到本地运行的MySql实例,并使用追加查询来提取数据。
但是,如果sql转储文件中每个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我建议使用制表符或逗号分隔的方法。当您执行file->get external data时,您应该看到一个向导启动,它允许导入一个文本(分隔)文件。
https://stackoverflow.com/questions/3665855
复制相似问题