以下の 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