从Access数据库导出过滤的行到Excel

我正在使用下面的VBA代码来将Access数据表中的可见列导出到Excel。 很好的工作,但我也想只导出过滤行,基于用户已经过滤每列。 我可以使用一些帮助,找出如何做到这一点。 任何帮助表示赞赏,lq

Public Function ExportToExcel() On Error GoTo myErr Dim strDestFolder As String Dim strSQL As String Dim qdf As dao.QueryDef Dim ctl As Control Dim strRandomString As String strDestFolder = "MyDestinationPath" strRandomString = "AQueryDefName" For Each ctl In Me.Child.Form.Controls If Not ctl.ColumnHidden Then If Len(strSQL) = 0 Then strSQL = "SELECT " & ctl.ControlSource & ", " Else strSQL = strSQL & ctl.ControlSource & ", " End If End If Next ctl If Len(strSQL) > 0 Then strSQL = Left(strSQL, Len(strSQL) - 2) strSQL = strSQL & " FROM tblMyTableName WHERE Something = '" & Me.Something & "'" End If Set qdf = CurrentDb.CreateQueryDef(strRandomString, strSQL) DoCmd.OutputTo acOutputQuery, strRandomString, "MicrosoftExcel (*.xls)", strDestFolder & ".xls", True myExit: CurrentDb.QueryDefs.Delete strRandomString Exit Function myErr: MsgBox Err.Number & " - " & Err.Description, vbCritical, "VBA Error" Resume myExit End Function 

子窗体的filter属性应返回适用于where语句的行。 例如:

 ([My subform].[ID] Not In (1,2,4,6)) 

当我select下拉列表并select一些数字时返回。 也:

 ([My subform].[ID] In (719,720))