AFAICT, это неизбежная «особенность» TransferText. Кажется, что не хватает какого-либо встроенного интеллекта, чтобы сказать: «Хорошо, мы экспортируем как acExportFixed, поэтому давайте рассмотрим ширину столбцов, определенную в спецификации экспорта, и выведем заголовки столбцов, используя те же самые ширины». Вместо этого он просто дает имена столбцов в виде списка через запятую.
Как и все остальное в Access, когда его поведение по умолчанию неудовлетворительно, вы можете написать код VBA, чтобы сделать это по-своему.
Const VB_FORREADING = 1
Const VB_FORWRITING = 2
Const cstrFile As String = "C:\Users\Documents\TestOutput.txt"
Const cstrHeaderRow As String = "col1 col2 etc..."
Dim oFSO As Object
Dim oFile As Object
Dim strContents As String
' do TransferText without the field names '
' (HasFieldNames default = False) '
DoCmd.TransferText acExportFixed, "Export Specification", _
"Test Query", cstrFile
Set oFSO = CreateObject("Scripting.FileSystemObject")
' read file content into strContents string variable '
Set oFile = oFSO.OpenTextFile(cstrFile, VB_FORREADING)
strContents = oFile.ReadAll
oFile.Close
' re-write file using cstrHeaderRow plus strContents '
Set oFile = oFSO.OpenTextFile(cstrFile, VB_FORWRITING)
oFile.write cstrHeaderRow & vbCrLf & strContents
oFile.Close
Set oFile = Nothing
Set oFSO = Nothing