呵呵,不知道错在哪 .不过 如果你用下面的代码 我想可以成功的!
Private Sub cmd导出_Click()
On Error GoTo Err_cmd导出_Click
Dim qdf As DAO.QueryDef
Dim strWhere, strSQL As String
strWhere = Me.CX省计划子窗体.Form.Filter()
If strWhere = "" Then
strSQL = "SELECT * FROM [CX省计划]"
Else
strSQL = "SELECT * FROM [CX省计划] WHERE " & strWhere
End If
'---------------- 去掉 用下面的代替 Set qdf = CurrentDb.QueryDefs("查询结果")
'---------------- 去掉qdf.sql = strSQL
Set qdf = CurrentDb.CreateQueryDef("查询结果", 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
需要注意的事,当程序运行一遍后 "查询结果"就产生了.如果你再次运行就会出错("提示已经存在!"),所以运行前需要加代码进行检查
不知道是否能给你帮助!!!!!!!!!!!!!!1