访问查询到excel 2010通过vba创建图形
问题描述:
经过广泛的搜索后,我一直无法找到任何我能理解的信息。有许多例子,但这些都是为访问2003年,并在访问2010年这些不起作用。访问查询到excel 2010通过vba创建图形
我需要运行一个vba代码,将查询结果(QryTotalSale)导出到Excel 2010并自动创建数据的条形图,并在正在运行的数据库上显示。
如果任何人都可以给我一些建议,然后我将不胜感激,甚至是一个有效的资源的链接,将在2010年
工作,到目前为止,我可以得到Excel打开,并显示结果有问题的查询。
为了让它更加困难,我真的需要查询来打开一个特定的excel文件,它将在桌面上的一个文件夹中,并且每次按下按钮来运行VBA时,都应该将新页面添加到excel工作簿,并显示新图形,并保存到电子表格中,以便以后可以查看整个excel文件。
我有下面的代码,但它不起作用。关于范围的位可以在excel中工作,但是访问似乎不能识别范围(这并不真正让我感到惊讶,因为它并不真正与我所知的范围有关。)
我的第二个想法是让前两个doCmd运行,然后让下一个位被强制在excel文件中自动运行。
Private Sub SalesImage_Click()
DoCmd.OpenQuery "QryTotalSale"
DoCmd.RunCommand acCmdOutputToExcel
Dim myRange as range
Set myRange = B2 * C30
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=myRange, _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
End Sub
我发现了一个ADODB代码类型的事情进行访问的2003版和excel,却无法得到这个工作。一半的选项似乎不再被认可访问...
我还有很长的路要走,并会真正感谢任何帮助。
感谢
山姆
答
这里有一些注意事项。我使用了晚期绑定,因此您不需要设置对Excel库的引用,但是,我已经在类型中包含了注释。
Dim xl As Object ''Excel.Application
Dim wb As Object ''Excel.Workbook
Dim ws As Object ''Excel.Worksheet
Dim ch As Object ''Excel.Chart
Dim myRange As Object
Set xl = CreateObject("Excel.Application")
sExcelWB = "z:\docs\testchart.xls"
''This will overwrite any previous run of this query to this workbook
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Query1", _
sExcelWB, True
Set wb = xl.Workbooks.Open(sExcelWB)
''Sheets are named with the Access query name
Set ws = wb.Sheets("Query1")
Set ch = xl.Charts.Add
ch.ChartType = xlColumnClustered
xl.Visible = True
xl.UserControl = True
''Still not saved
+1为简单的代码。 – 2012-04-02 10:50:45
谢谢。这是一个很好的开始。 两件事我不能得到.... 你在哪里使用“查询1”我把这个改名为我想使用的查询,但访问找不到它?我可能错过了一些非常明显的东西。 是否可以在工作表的命名中使用日期函数? – 2012-04-02 11:00:55
如果Access表示无法找到您的查询,请检查您的拼写。最简单的方法是在创建后使用当前日期重命名工作表。不要使用 - 或/,调用工作表,比如说“2012Apr21” – Fionnuala 2012-04-02 11:04:01