ACCESS导出子窗体筛选后数据到EXCEL实例
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
这样就可以了。
共有 0 条评论