访问查询到excel 2010通过vba创build一个图表

经过广泛的search,我一直无法find任何我能理解的信息。 有很多例子,但这些都是2003年的访问,这些在2010年的访问不起作用。

我需要运行一个将查询结果(QryTotalSale)导出到Excel 2010的vba代码,并自动创build数据的条形图,并在正在运行的数据库上显示。

如果有人可以给我一些build议,那么我将不胜感激,甚至连接到一个有效的资源,将在2010年工作。

到目前为止,我可以得到excel打开,并显示有问题的查询结果。

为了使它更加困难,我真的需要查询来打开一个特定的Excel文件,它将在桌面上的一个文件夹中,并且每次按下button来运行VBA时,都应该在Excel工作簿中添加一个新页面,并且新的graphics被显示,并保存到电子表格中,以便以后可以查看整个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代码types的东西的访问和Excel版本2003年,但无法得到这个工作。 一半的select似乎不再被认可的访问…

我还有很长的路要走,非常感谢任何帮助。

谢谢

山姆

这里有一些笔记。 我已经使用了后期绑定,所以您不需要设置对Excel库的引用,但是,我已经在types中包含注释。

 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