Access 仅导出查询的第一列

Posted

技术标签:

【中文标题】Access 仅导出查询的第一列【英文标题】:Access exports only 1st column of query 【发布时间】:2010-09-22 20:20:16 【问题描述】:

全部 - 我很尴尬地问一些看起来如此简陋的东西,但我被困住了。

使用 Access 2007,我对单个 84K 行表运行查询以生成约 80K 行的结果集。我无法将结果集复制/粘贴到 Excel 中(Access 无法复制/粘贴 > 64K 行)。当我右键单击查询并导出时,无论我尝试什么格式,它都只导出第一行(ID)。

如何获得访问权以导出整个结果集? (我尝试过突出显示所有内容等。我还尝试使用“外部数据”功能区,但这只是导出原始表,而不是我运行的查询的结果集。)

谢谢!

【问题讨论】:

可能不是64K的问题,而是设置为只导出header。如果您创建具有 1 行结果的查询,它可以导出吗? 所有,感谢 cmets。事实证明,这是一个非常奇怪的组合导致了这种情况。为了创建初始查询,我点击了“简单查询”并选择了第一列。然后我手动编辑 SQL 以生成我想要的查询,但无论出于何种原因,Access 都记得我只输入了初始 SQL 中的第一列。 我会发布此评论作为答案,以便将来的用户可能会发现它更容易。你也可以接受。 【参考方案1】:

我运行了一个查询,通过单击左上角的小箭头 CTRL-C 突出显示所有内容,打开 Excel CTRL-V。全部导出。 (当然,我没有像你这样的 ~100k 行,但我不明白为什么它也不能处理。)

或者这不是你想要的?

【讨论】:

不幸的是,一旦超过 65K 行,Access 就会在复制时出错并出错。不知道为什么,因为 Excel 2007 不再有 65K 行限制......我经常使用其他应用程序复制/粘贴 > 65K 行。【参考方案2】:

如果您一次将 40,000 行复制到 Excel 文件中的不同选项卡会怎样?

【讨论】:

【参考方案3】:

我在使用 Access 2013 时遇到了类似的问题,因此决定分享如何解决它。我可以解决这个问题的唯一方法是使用 VBA。

仅更新 testSQL(转到查询的 SQL 视图时很容易看到)和 CSV_file_path(CSV 导出的文件路径)

Sub Export_ToCSV()

Dim testSQL As String
Dim UserInput As String
Dim db As Database, qd As DAO.QueryDef

Set db = CurrentDb

testSQL = "SELECT Table1.Column1, Table1.Column2, Table1.Column3 FROM Table1;"
CSV_file_path = "C:\temp\filename.csv"

Set qd = db.CreateQueryDef("tmpExport", testSQL)
DoCmd.TransferText acExportDelim, , "tmpExport", CSV_file_path, True
db.QueryDefs.Delete "tmpExport"
MsgBox ("Finished")

End Sub

【讨论】:

以上是关于Access 仅导出查询的第一列的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 查询返回的记录不足,但仅限于某些约束

如何将整个 Access 数据库导出到 SQL Server? [关闭]

如果表单未绑定,如何选择 MS Access 组合框中的第一项

安排 Access 查询的导出

Access VBA中一列的总和

如何将一列的运行总计添加到 Access 查询?