Office中国论坛/Access中国论坛

标题: 我想把表批量导出,现在遇到问题是超过了65000的就提示不行。 [打印本页]

作者: dxlz    时间: 2017-7-1 19:27
标题: 我想把表批量导出,现在遇到问题是超过了65000的就提示不行。
我想把表批量导出,现在遇到问题是超过了65000的就提示不行,另外这种方式怎么把系统表也一起导出去了呢。

作者: tmtony    时间: 2017-7-1 19:36
Excel限制的,换Excel更高版本
作者: dxlz    时间: 2017-7-1 19:39
tmtony 发表于 2017-7-1 19:36
Excel限制的,换Excel更高版本

我换txt,word格式也是一样哦MVP。
作者: Henry D. Sy    时间: 2017-7-2 17:41
dxlz 发表于 2017-7-1 19:39
我换txt,word格式也是一样哦MVP。
  1. Private Sub Command1_Click()
  2.     Dim xlApp As New Excel.Application
  3.     Dim xlbook As Excel.Workbook
  4.     Dim xlsheet As Excel.Worksheet
  5.     Dim rs As New ADODB.Recordset
  6.     Dim i As Long, J As Long
  7.     Set xlbook = xlApp.Workbooks.Add
  8.     xlbook.SaveAs CurrentProject.Path & "\A.xlsx"
  9.     rs.Open "test1", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  10.     J = rs.RecordCount
  11.     Set xlsheet = xlbook.Worksheets("sheet1")
  12.     'With xlsheet
  13.     For i = 0 To rs.Fields.Count - 1
  14.         xlsheet.Cells(1, i + 1) = rs.Fields(i).Name
  15.     Next
  16.     xlsheet.Range("A2").CopyFromRecordset rs
  17.     MsgBox "导出表成功!" & Chr(13) & "共导出" & J & "个表到:" & CurrentProject.Path & "文件夹中"
  18.     rs.Close
  19.     Set rs = Nothing
  20.     xlApp.Visible = True
  21.     Set xlsheet = Nothing
  22.     Set xlbook = Nothing
  23.     Set xlApp = Nothing
  24. End Sub
复制代码

作者: Henry D. Sy    时间: 2017-7-2 20:56
用Excel查询表应该也可以,不过性能会比拷贝记录集差
没有测试,你自己试试!

  1. Private Sub Command1_Click()
  2.     Dim xlApp As New Excel.Application
  3.     Dim xlbook As Excel.Workbook
  4.     Dim xlsheet As Excel.Worksheet
  5.     Dim xlQuery As Excel.QueryTable
  6.     Dim rs As New ADODB.Recordset
  7.     Dim I As Long, J As Long
  8.     Set xlbook = xlApp.Workbooks.Add
  9.     xlbook.SaveAs CurrentProject.Path & "\data\A.xlsx"
  10.     rs.CursorLocation = adUseClient
  11.     rs.Open "test1", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  12.     J = rs.RecordCount
  13.     Set xlsheet = xlbook.Worksheets("sheet1")
  14.     Set xlQuery = xlsheet.QueryTables.Add(rs, xlsheet.Range("A1"))
  15.     xlQuery.Refresh
  16.     MsgBox "导出表成功!" & Chr(13) & "共导出 " & J & " 个表记录到: " & CurrentProject.Path & "\Data  文件夹中"
  17.     rs.Close
  18.     Set rs = Nothing
  19.     Set xlQuery = Nothing
  20.     xlApp.Visible = True
  21.     Set xlsheet = Nothing
  22.     Set xlbook = Nothing
  23.     Set xlApp = Nothing
  24. End Sub
复制代码

作者: roych    时间: 2017-7-2 23:45
试试用CSV格式导出。不过如果你的是2003版本。超过的部分,在Excel里还是看不到。
另外,导出时,注意把含有sys名称的剔除掉,这样才不会把系统表导出,详细请留意链接
http://www.office-cn.net/thread-53455-1-1.html
http://www.office-cn.net/thread-97880-1-1.html
作者: tmtony    时间: 2017-7-3 10:52
也可参考这里
多关键字导出

作者: dxlz    时间: 2017-7-7 10:54
终于搞定了,也共享出来把,直接导出为TXT或者EXCLE都行,主要OutputTo对数据有限制根本不关版本问题,后来用TransferSpreadsheet搞定这个问题。





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3