У меня есть некоторый код, который я ранее получил из одной из моих других баз данных Access, который работает нормально. Его целью было скопировать результаты, которые были помещены в рабочую таблицу, в пустой лист Excel, а затем отформатировать столбцы.
Однако я скопировал код и немного подправил его. То, что я пытаюсь сделать с помощью скопированного кода, все еще экспортирует мои результаты в чистый лист Excel, однако на этот раз я копируюсь не из таблицы make, а из запроса select. Я не уверен, если это возможно, но у меня нет другого способа превратить это в таблицу make, это должен быть запрос select. Есть ли способ помочь кому-нибудь? Код, который у меня сейчас есть:
Option Compare Database
Public Function Export_EXCEL()
Dim dbs As DAO.Database
Dim Response As Integer
Dim strSQL As String
Dim Query1 As String
Dim LTotal As String
Dim Excel_App As Excel.Application 'Creates Blank Excel File
Dim strTable As String ' Table in access
Dim queryDelete As String 'SQL to delete records in local table
Dim strAssigned As DAO.Recordset
'-------------------------------------------------------------------------------
strTable = "Select * From cso_sup_SETUP" 'Access Query I am trying to copy
Set Excel_App = CreateObject("Excel.Application")
Set dbs = CurrentDb
'-------------------------------------------------------------------------------
Dim rs As DAO.Recordset
Set rs = dbs.OpenRecordset(strTable)
Excel_App.Visible = True
Dim wkb As Excel.Workbook
Set wkb = Excel_App.Workbooks.Add
Dim rg As Excel.Range
Dim i As Long
' Add the headings
For i = 0 To rs.Fields.Count - 1
wkb.Sheets(1).Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
Set rg = wkb.Sheets(1).Cells(2, 1)
rg.CopyFromRecordset rs
' make pretty
rg.CurrentRegion.EntireColumn.AutoFit
Set rs = Nothing
Set wkb = Nothing
Set dbs = Nothing
End Function
Это модифицированный код ниже:
Option Compare Database
Public Function Export_EXCEL()
Dim dbs As DAO.Database
Dim Response As Integer
Dim strSQL As String
Dim Query1 As String
Dim LTotal As String
Dim Excel_App As Excel.Application 'Creates Blank Excel File
Dim strTable As String ' Table in access
Dim queryDelete As String 'SQL to delete records in local table
Dim strAssigned As DAO.Recordset
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim prm As DAO.Parameter
Dim qdf As DAO.QueryDef
'-------------------------------------------------------------------------------
strTable = "Select * From cso_sup_SETUP" 'Access Query I am trying to copy
Set Excel_App = New Excel.Application
Set dbs = CurrentDb
'-------------------------------------------------------------------------------
Set rs = QuerDef.OpenRecordset(strTable)
Excel_App.Visible = True
Dim wkb As Excel.Workbook
Set wkb = Excel_App.Workbooks.Add
Dim rg As Excel.Range
Dim i As Long
' Add the headings
For i = 0 To rs.Fields.Count - 1
wkb.Sheets(1).Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
Set rg = wkb.Sheets(1).Cells(2, 1)
rg.CopyFromRecordset rs
' make pretty
rg.CurrentRegion.EntireColumn.AutoFit
Set rs = Nothing
Set wkb = Nothing
Set dbs = Nothing
End Function