There are a few different ways to go about it, but I'd say you should first make a Group By query that just gets the values from that field so that you only get the unique values.
From there you can open the query as a recordset and then run another query on each value to just get the results from your Accounts and export them to an Excel. You will also have to use the FSO resources to manipulate your file system. You can use the Mid function to parse out each folder you need to create and the filename. You will also need to create a placeholder query that you can do the Excel export from. So just make a query called qryTemp and save it. Doesn't matter what you initially put in it, we'll be changing the SQL in code.
Code:
dim db as database
dim rs as recordset
dim FSO as object
dim rootFolder as string
dim subFolder as string
dim fileName as string
set FSO as CreateObject("Scripting.FileSystemObject")
set db = currentdb
set rs = db.openrecordset("SELECT Routes FROM Accounts GROUP BY Routes", dbOpenDynaset, dbSeeChanges)
do while not rs.EOF
rootFolder = mid(rs!Routes, 0, 3) & "\"
subFolder = mid(rs!Routes, 5, 5) & "\"
fileName = mid(rs!Routes, 5, 8)
if not FSO.FolderExists("c:\Example\" & rootFolder & subFolder) then FSO.CreateFolder("c:\Example\" & rootFolder & subFolder)
if FSO.FileExists("c:\Example\" & rootFolder & subFolder & fileName) then FSO.DeleteFile("c:\Example\" & rootFolder & subFolder & fileName, True)
db.QueryDefs("qryTemp").SQL = "SELECT * FROM Accounts WHERE Routes = '" & rs!Routes & "'"
docmd.OutputTo acOutputQuery, "qryTemp", acFormatXLS, "c:\Example\" & rootFolder & subFolder & fileName, False
rs.movenext
loop
set db = nothing
set rs = nothing