Экспорт отфильтрованных строк из таблицы доступа в Excel
Я использую код VBA ниже, чтобы экспортировать только видимые столбцы в таблице доступа в 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
1 ответ
Свойство filter подчиненной формы должно возвращать строку, подходящую для использования в операторе where. Например:
([My subform].[ID] Not In (1,2,4,6))
Возвращается, когда я выбираю выпадающий список и выбираю несколько номеров. Также:
([My subform].[ID] In (719,720))