Как экспортировать несколько запросов в один лист Excel

#sql #vba #ms-access

#sql #vba #ms-access

Вопрос:

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

Я не знаю, как я могу с этим справиться, кто-нибудь может мне помочь?

Комментарии:

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

2. что вы имеете в виду под временным листом?

3. Вместо того, чтобы вставлять запрос в лист, который вы хотите. Вставьте его в лист.. например, «TempData», скопируйте временные данные в свой основной лист, удалите все в TempData и повторите цикл.

4. Используйте запрос объединения, чтобы объединить несколько запросов в единый результат и экспортировать этот единственный запрос в Excel. Проверьте support.office.com/en-us/article /…

5. Удалены теги из заголовка; заглавные буквы торговой марки; грамматика; шумоподавление.

Ответ №1:

Установите ссылку на Microsoft Excel в редакторе Access Vb

 Sub ExportQueries
Dim xl as New Excel.Application  'start up excel
dim wb as workbook
dim ws as worksheet
dim r as range
set wb = xl.workbooks.add      'add a workbook
set ws = wb.worksheets(1)      'point to first sheet
set r = ws.range("a1")         'point to a cell
r = "my first caption"
set r = r.offset(1,0)
'dim rs as new recordset        'ADO
Dim rs as recordset     'DAO
'   rs.open "myquery",currentproject.connection  'ADO
 Set rs = Currentdb.OPenrecordset("myquery")  'DAO


 '*************************Copy field headings into excel
 Dim f as field   
 dim x as integer
 For each f in rs.Fields
    r.offset(0,1)=f.name
    x = x 1
 next f
  set r = r.offset(1,0)
  '****************************End field headings


r.copyfromrecordset rs   'copy results into xl
rs.close
set r = r.end(xldown).offset(2,0) 'point to cell 2 below end of first set of results
r = "my next caption"
set r = r.offset(1,0)
rs.open "myotherquery",currentproject.connection
r.copyfromrecordset rs
rs.close
set r = r.end(xldown).offset(2,0)
'and so on

end sub
  

Комментарии:

1. Привет, спасибо за ваше решение, я получил сообщение об ошибке с «dim rs как новый набор записей», я решил это с помощью «Dim rs как DAO.Набор записей Устанавливает rs = CurrentDb.OpenRecordset («myquery»)»…

2. Но я не получаю с помощью этого кода заголовки столбцов результатов моего запроса в Excel, вы знаете, как я могу экспортировать это также?