ACCESS导出子窗体筛选后数据到EXCEL实例

1,340次阅读
没有评论

共计 742 个字符,预计需要花费 2 分钟才能阅读完成。

提醒:本文最后更新于 2019-05-12 20:01,文中所关联的信息可能已发生改变,请知悉!

Private Sub Cmd 导出_Click()
On Error GoTo Err_cmd 导出_Click‘这里将使用 DAO 来改变查询的 SQL 语句,必须先在“工具”→“引用”中选择‘Microsoft DAO XXXX Object Library‘XXXX 版本号

Dim qdf As DAO.QueryDef‘qdf 被定义为一个查询定义对象
Dim strWhere, strSQL As String

strWhere = Me. 查询子窗体.Form.Filter
If strWhere =“”Then‘没有条件
strSQL =“SELECT * FROM [表]”Else‘有条件
strSQL =“SELECT * FROM [表] WHERE”& strWhere
End If

Set qdf = CurrentDb.QueryDefs(“查询”)
qdf.SQL = strSQL
qdf.Close

Set qdf = Nothing

DoCmd.OutputTo acOutputQuery,“查询结果”, acFormatXLS, , True

Exit_cmd 导出_Click:
Exit Sub

Err_cmd 导出_Click:
MsgBox Err.Description
Resume Exit_cmd 导出_Click

End Sub

以上方法在导出到 excel 的时候,数据格式可能会有问题,ACCESS 字段的格式是文本、数字的话基本没问题,时间格式的话 excel 会不识别,该问题有待解决。

经过试验,发现是 office 的版本不一致造成格式错误,ACCESS 版本是 2010 版,导出的 excel 是 2003 版,把导出的版本换成 2010 版就没有上面的问题了。

DoCmd.OutputTo acOutputQuery, “ 查询结果 ”, acFormatXLSX, , True

这样就可以了。

正文完
 
水东柳
版权声明:本站原创文章,由 水东柳 2019-01-24发表,共计742字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)