Exportando Recordset para planilha

Apenas começando a entender alguns VBA (este material é novo para mim, então fique com a gente!)

Da consultaContactDetails_SurveySoftOutcomes, Estou tentando primeiro encontrar uma lista de todos os valores exclusivos noDeptName campo nessa consulta, daí arsGroup Dim armazenando uma consulta agrupada noDeptName campo.

Em seguida, usarei essa lista agrupada para percorrer a mesma consulta novamente, mas passando por cada entrada exclusiva como um filtro em todo o conjunto de registros e exportando cada conjunto de registros filtrado para sua própria planilha do Excel ... veja oDo While Not loop.

Meu código está tropeçando noDoCmd.TransferSpreadsheet ...rsExport parte. Eu sou um pouco novo nisso, mas eu acho que meu nome DimrsExport para o conjunto de registros não é aceito neste método ..?

Existe uma solução fácil para o código que já iniciei ou devo usar uma abordagem completamente diferente para conseguir tudo isso?

Código:

Public Sub ExportSoftOutcomes()

Dim rsGroup As DAO.Recordset
Dim Dept As String
Dim myPath As String

myPath = "C:\MyFolder\"

Set rsGroup = CurrentDb.OpenRecordset("SELECT ContactDetails_SurveySoftOutcomes.DeptName " _
& "FROM ContactDetails_SurveySoftOutcomes GROUP BY ContactDetails_SurveySoftOutcomes.DeptName", dbOpenDynaset)

Do While Not rsGroup.EOF

    Dept = rsGroup!DeptName

    Dim rsExport As DAO.Recordset
    Set rsExport = CurrentDb.OpenRecordset("SELECT * FROM ContactDetails_SurveySoftOutcomes " _
    & "WHERE (((ContactDetails_SurveySoftOutcomes.DeptName)='" & Dept & "'))", dbOpenDynaset)

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, rsExport, myPath & Dept & "\" & Dept & " - Soft Outcomes Survey.xls", True

    rsGroup.MoveNext

Loop

End Sub

Código Fixo:

Public Sub ExportSoftOutcomes()

Dim rsGroup As DAO.Recordset
Dim Dept As String
Dim myPath As String

myPath = "C:\MyFolder\"

Set rsGroup = CurrentDb.OpenRecordset("SELECT ContactDetails_SurveySoftOutcomes.DeptName " _
& "FROM ContactDetails_SurveySoftOutcomes GROUP BY ContactDetails_SurveySoftOutcomes.DeptName", dbOpenDynaset)

Do While Not rsGroup.EOF
    Dept = rsGroup!DeptName

    Dim rsExportSQL As String
    rsExportSQL = "SELECT * FROM ContactDetails_SurveySoftOutcomes " _
    & "WHERE (((ContactDetails_SurveySoftOutcomes.DeptName)='" & Dept & "'))"

    Dim rsExport As DAO.QueryDef
    Set rsExport = CurrentDb.CreateQueryDef("myExportQueryDef", rsExportSQL)

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "myExportQueryDef", myPath & Dept & "\" & Dept & " - Soft Outcomes Survey.xls", True

    CurrentDb.QueryDefs.Delete rsExport.Name

    rsGroup.MoveNext
Loop

End Sub

questionAnswers(3)

yourAnswerToTheQuestion