2017-01-09 10 views
0

ЦЕЛИMS Access, VBA - Экспорт Таблица результатов в Excel

  1. Создание Кросс из существующей таблицы
  2. Экспорта отформатированного Кросса в Excel с помощью VBA

ПОДХОДА

  1. Создан запрос, который передает d необходимые данные для таблицы
  2. Создал кросс-стабильный запрос для правильного форматирования данных в существующей таблице
  3. ! ПОМОЩЬ НЕОБХОДИМО! Нажмите Кросс запрос, чтобы преуспеть

ВОПРОСОВ

  1. Я посмотрел вокруг онлайн и, кажется, что экспортировать, чтобы преуспеть Кросс трудно - кажется, что большинство форумов рекомендуют перебор линию за линией для экспорта crosstable (это очень удивительно). Можно ли каким-либо образом использовать метод (например, DoCmd.TransferSpreadsheet) для экспорта кросс-стабилизированного?

Почему это так трудно изумляет меня, извинения за наивность

+0

У некоторых исследований о том, как создать запрос Pivot, сохраните его, а затем экспортировать его Youcan с помощью transferspreadsheet. если вы хотите использовать vba, вы можете дополнительно модифицировать его excel через vba после экспорта ... –

+1

Что вы попробовали? Какие ошибки вы получаете или вызываете нежелательные результаты? Как выглядят данные для нас, чтобы воспроизвести проблему? – Parfait

ответ

0

Вслед за моим первоначальным постом. Похоже, вы используете DoCmd.TransferSpreadsheet чтобы экспортировать crosstable.

Я определил рабочий код ниже:

outputQuery = [your cross table query] 
outputPath = [save-to file location] 
outputFileName = [save-to file name] 

DoCmd.TransferSpreadsheet acExport, SpreadsheetType:=acSpreadsheetTypeExcel12Xml, TableName:=outputQuery, FileName:=outputPath & outputfilename 
0

Я просто создать запрос, я хочу в MS Access.

Тогда в excel у меня есть макрос, который я написал, который запускает запрос и выводит его на лист. см. ниже пример.

Dim cnString As String 
Dim rs As New ADODB.Recordset 

'Change connection string to an MS Access one 
cnString = "Provider=xx;Server=xx,49168;Database=xx;" 
rs.Open queryName, cnString, adOpenStatic, adLockOptimistic 

'Output Headings 
For i = 1 To rs.Fields.Count 
     Sheets(PasteSheet).Range(pasteCell).Offset(0, i - 1) = rs.Fields(i - 1).Name 
Next i 

'Output data 
Sheets(PasteSheet).Range(pasteCell).Offset(1, 0).CopyFromRecordset rs 
rs.close 

Если вы хотите сделать все это в MS Access, изменить его не потребуется. Вам просто просто нужно создать новую книгу, а затем сделать очень похожее на вышеупомянутый код.

Смежные вопросы