2013-11-01 6 views
1

Есть ли код, который я могу использовать, с помощью которого я могу импортировать запрос кросс-таблицы в Excel, а также связать его?Связывание и импорт запроса кросс-таблицы Access в Excel

В настоящее время это шаги, которые я использую для импорта данных из запроса кросс-табуляции. Данные >> Импорт внешних данных >> Новый запрос базы данных >> Источник данных MS Access * >> перейдите в мою базу данных >> выберите имя запроса кросс-таблицы >> выберите нужные мне данные.

Мне нужно связать запрос, потому что будет введена дополнительная информация. Например. Этот месяц - ноябрь, и мне нужно ввести данные, полученные за этот месяц в систему.

ответ

1

Вместо того, чтобы импортировать данные, в Excel:

  1. Из меню Файл выберите данные
  2. Выберите из объекта доступа (таблицы или запроса) вы хотите вывести данные.
  3. Данные загружаются в excel
  4. в любое время, когда вы хотите обновить данные, щелкните правой кнопкой мыши данные и выберите обновление или выберите обновление, если существует несколько ссылок.

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

enter image description here

0

Я обнаружил, что вы не можете, если база данных бэкенда является Access ACCDB файла

https://excelandaccess.wordpress.com/2013/07/26/how-to-import-access-data-to-excel-using-the-get-external-data-from-access-option/

«Вы должны отметить, что в то время как вы не можете импортировать кросс-таблицы запросов из Access, вы можете импортировать данные, которые поддерживают Crosstab в качестве отчета сводной таблицы (в конце концов, сводная таблица представляет собой, по сути, версию Excel запроса Crosstab Access). "

Вам придется импортировать исходные данные, а затем создать сводную таблицу

0

Но вы можете сделать это с помощью VBA:

Function ImportCrosstab(TheDB As String, TheCrosstab As String, TheSpreadsheet As String) 
'requires a reference to the Microsoft Office Access Database Engine 12.0 Object Library 
'e.g.ImportCrosstab "C:\Databases\Newdatabase.accdb", "Q_stage_crosstab", "CompliancebyStage" 

Dim db As Database 
Dim qdf As QueryDef 
Dim rs As Recordset 
Dim ws As Worksheet 
Dim strConnection As String 
Dim j As Long 
Dim xls As Object 'your Excel.Application with sheet activated 

Set ws = ThisWorkbook.Worksheets(TheSpreadsheet) 


Set db = OpenDatabase(TheDB) 
Set qdf = db.QueryDefs(TheCrosstab) 
Set rs = qdf.OpenRecordset 
With ws 
    For j = 0 To rs.Fields.Count - 1 
     .Cells(1, j + 1).Value = rs.Fields(j).Name 
    Next 
    .Range("A2").CopyFromRecordset rs 
End With 
rs.Close 
End Function 
1

почему Excel не представит перекрестный запрос в список таблиц/запросов, которые вы можете выбрать, но его можно добавить без VBA, и после этого он будет обновляться так же, как и обычная таблица, вам нужно ввести некоторый базовый SQL в свойствах соединения.

Инструкции для Excel 2016 & не проверены в предыдущих версиях.

  1. Создание канала передачи данных в другую таблицу или запрос в той же базе данных Access, как ваш перекрестный запрос (от обычных данных -> Из Access).

  2. Щелкните в любом месте в приведенной таблице и на вкладке «Дизайн» нажмите «Свойства», чтобы открыть диалоговое окно «Свойства внешних данных».

  3. Выберите маленькую кнопку рядом с полем «Имя:» справа, чтобы открыть свойства соединения.

  4. Перейдите на вкладку Определение и изменение типа Command в "SQL"

  5. Введите основной бит SQL:. ВЫБЕРИТЕ YourCrossTabQueryName * FROM YourCrossTabQueryName

  6. Hit ОК.

Это должно обновить таблицу с помощью указанной кросс-таблицы.

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