Я пытаюсь экспортировать несколько сводных отчетов из Access в Excel. Исходные данные находятся в Access. Форма, в которой конечный пользователь создает эти отчеты одним нажатием кнопки, также находится в Access. Я столкнулся с трудностями 2 и удивление, если вы можете помочь:Экспорт и форматирование нескольких листов из Access в Excel
Я успешно удается экспортировать свои отчеты, но по какой-то причине мои форматы не реализованы - Не могли бы вы сказать мне, почему и предложить идею о том, как можно Я исправлю это.
Наряду с моими отчетами я хотел бы добавить графики. Не могли бы вы помочь мне понять, как я могу начать с этого.
*** Пока что я сделал макрос vba в excel и как-то понял, как его перевести в доступе. Почему это так отличается, и почему я не могу использовать один и тот же синтаксис языка? Я довольно новичок в программировании, но логически, так как Microsoft Office создал обе среды - не должен ли язык быть одинаковым? Я имею в виду, я бы предположить, почему многие пользователи предпочитают покупать их продукцию - Как ни странно - моя теория не поддерживает мое предположение .... пожалуйста, помогите
Вот мой код:
Private Sub cmdREPORT_GenerateUWReport_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo cmdREPORT2_err
Dim appExcel As Variant
Dim wbkExcel As Object
Dim wstExcel As Object
Dim dblFormattedStartDate As Double
Dim dblFormattedEndDate As Double
Dim strFileSavePath As String
Dim strFilter As String
If (IsNull(comboREPORT_StartDate.Value) Or comboREPORT_StartDate.Value = "") Then
MsgBox ("No Start Date selected.")
Exit Sub
ElseIf (IsNull(comboREPORT_EndDate.Value) Or comboREPORT_EndDate.Value = "") Then
MsgBox ("No End Date selected.")
Exit Sub
End If
dblFormattedStartDate = Right(comboREPORT_StartDate.Value, 4) & _
Left(comboREPORT_StartDate.Value, 2)
dblFormattedEndDate = Right(comboREPORT_EndDate.Value, 4) & _
Left(comboREPORT_EndDate.Value, 2)
If (dblFormattedStartDate > dblFormattedEndDate) Then
MsgBox ("Start Date is greater than End Date.")
Exit Sub
End If
strFilter = ahtAddFilterItem(strFilter, "Excel Files (*.XLS)", "*.XLS")
strFilter = ahtAddFilterItem(strFilter, "All Files (*.*)", "*.*")
strFileSavePath = ahtCommonFileOpenSave(_
OpenFile:=False, _
InitialDir:="C:\Documents And Settings\" & fOSUserName() & "\Desktop\", _
Filter:=strFilter, _
DialogTitle:="Save file as:", _
Flags:=ahtOFN_OVERWRITEPROMPT Or ahtOFN_READONLY, _
Filename:="URC_Reports.xls")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "D60: DetailReportDonna", strFileSavePath, True, "Detail_Report"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "D24: FA_Month", strFileSavePath, True, "FA_Month"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "D34: FA_Quarter", strFileSavePath, True, "FA_Quarter"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "D40: Policy_Month_Count", strFileSavePath, True, "Policy_Month_Count"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "D50: Policy_Quarter_Count", strFileSavePath, True, "Policy_Quarter_Count"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "D10: Risk_Issue_Details", strFileSavePath, True, "Risk_Issue_Details"
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = True
Set wbkExcel = appExcel.Workbooks.Open(strFileSavePath)
Set wstExcel = wbkExcel.ActiveSheet
With appExcel
.ActiveWorkbook.Sheets("Detail_Report").Cells.Font.Name = "Times New Roman"
.ActiveWorkbook.Sheets("Detail_Report").Cells.Font.Size = 11
.ActiveWorkbook.Sheets("Detail_Report").Rows("2:2").Select
.ActiveWorkbook.Sheets("Detail_Report").ActiveWindow.FreezePanes = True
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").Font.Bold = True
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").Font.ColorIndex = 2
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").Interior.ColorIndex = 12
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").ColumnWidth = 15
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").RowHeight = 40
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").HorizontalAlignment = xlHAlignCenter
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").WrapText = True
.ActiveWorkbook.Sheets("Detail_Report").Rows("1:1").AutoFilter
.ActiveWorkbook.Sheets("Detail_Report").Tab.Color = 1
.ActiveWorkbook.Sheets("FA_Month").Tab.Color = 92
.ActiveWorkbook.Sheets("FA_Month").Rows("1:1").RowHeight = 40
.ActiveWorkbook.Sheets("FA_Month").Rows("1:1").Font.ColorIndex = 2
.ActiveWorkbook.Sheets("FA_Month").Rows("1:1").Interior.ColorIndex = 14
.ActiveWorkbook.Sheets("FA_Month").Rows("1:1").Font.Bold = True
.ActiveWorkbook.Sheets("FA_Month").Columns("A:M").EntireColumn.AutoFit
.ActiveWorkbook.Sheets("FA_Month").Columns("C:H").NumberFormat = "$#,##0"
.ActiveWorkbook.Sheets("FA_Month").Cells.Font.Name = "Times New Roman"
.ActiveWorkbook.Sheets("FA_Month").Cells.Font.Size = 11
.ActiveWorkbook.Sheets("FA_Month").Cells.HorizontalAlignment = xlHAlignRight
.ActiveWorkbook.Sheets("FA_Quarter").Tab.Color = 92
.ActiveWorkbook.Sheets("FA_Quarter").Rows("1:1").RowHeight = 40
.ActiveWorkbook.Sheets("FA_Quarter").Rows("1:1").Font.ColorIndex = 2
.ActiveWorkbook.Sheets("FA_Quarter").Rows("1:1").Interior.ColorIndex = 14
.ActiveWorkbook.Sheets("FA_Quarter").Rows("1:1").Font.Bold = True
.ActiveWorkbook.Sheets("FA_Quarter").Columns("A:M").EntireColumn.AutoFit
.ActiveWorkbook.Sheets("FA_Quarter").Columns("C:H").NumberFormat = "$#,##0"
.ActiveWorkbook.Sheets("FA_Quarter").Cells.Font.Name = "Times New Roman"
.ActiveWorkbook.Sheets("FA_Quarter").Cells.Font.Size = 11
.ActiveWorkbook.Sheets("FA_Quarter").Cells.HorizontalAlignment = xlHAlignRight
.ActiveWorkbook.Sheets("Policy_Month_Count").Tab.Color = 246
.ActiveWorkbook.Sheets("Policy_Month_Count").Rows("1:1").RowHeight = 40
.ActiveWorkbook.Sheets("Policy_Month_Count").Rows("1:1").Font.ColorIndex = 2
.ActiveWorkbook.Sheets("Policy_Month_Count").Rows("1:1").Interior.ColorIndex = 49
.ActiveWorkbook.Sheets("Policy_Month_Count").Rows("1:1").Font.Bold = True
.ActiveWorkbook.Sheets("Policy_Month_Count").Columns("A:M").EntireColumn.AutoFit
.ActiveWorkbook.Sheets("Policy_Month_Count").Cells.Font.Name = "Times New Roman"
.ActiveWorkbook.Sheets("Policy_Month_Count").Cells.Font.Size = 11
.ActiveWorkbook.Sheets("Policy_Month_Count").Cells.HorizontalAlignment = xlHAlignRight
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Tab.Color = 246
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Rows("1:1").RowHeight = 40
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Rows("1:1").Font.ColorIndex = 2
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Rows("1:1").Interior.ColorIndex = 49
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Rows("1:1").Font.Bold = True
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Columns("A:M").EntireColumn.AutoFit
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Cells.Font.Name = "Times New Roman"
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Cells.Font.Size = 11
.ActiveWorkbook.Sheets("Policy_Quarter_Count").Cells.HorizontalAlignment = xlHAlignRight
End With
cmdREPORT2_err:
Exit Sub
End Sub
Вы, вероятно, необходимо добавить ссылку на Excel в доступе. В окне кода «Инструменты», «Ссылки ...» и проверьте «Библиотека объектов Microsoft Excel 14.0». Это даст вам объекты, такие как «Excel.Application» и «Workbook» и «Worksheet» objcets для взаимодействия с Excel Файлы – Evan
Измените свои declerations на 'Dim appExcel As Excel.Application' ' Dim wbkExcel As Excel.Workbok' 'Dim wstExcel As Excel.Worksheet', и вы должны быть хорошими – Evan
Thanks Evan. Это очень помогло мне. Не могли бы вы рассказать мне, что еще мне нужно добавить в форматы, чтобы получить диаграмму. – Robert