adjust the table name / fields as you need
Code:
Public Sub export26()
Dim sSql As String
Dim vChr
Dim i As Integer
Dim qdf As QueryDef
Const kQRY = "qsNames2Export"
Dim vFile, vLtr
On Error Resume Next
vFile = "c:\temp\contacts.xls"
sSql = "select * from tClients where left(ucase([lastn]),1)<='A'"
Set qdf = New QueryDef
qdf.SQL = sSql
qdf.Name = kQRY
CurrentDb.QueryDefs.Append qdf
For i = 65 To 90
vLtr = Chr(i)
If i = 65 Then 'A or less
sSql = "select * from tClients where left(ucase([lastn]),1)<='" & vLtr & "' ORDER BY tClients.LastN, tClients.FirstN;"
Else
sSql = "select * from tClients where left(ucase([lastn]),1)='" & vLtr & "' ORDER BY tClients.LastN, tClients.FirstN;"
End If
Set qdf = CurrentDb.QueryDefs(kQRY)
qdf.SQL = sSql
qdf.Close
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, kQRY, vFile, True, vLtr
Next
Set qdf = Nothing
End Sub