2012-04-02 14 views
2

広範な検索の後、私が理解できるこの情報を見つけることができませんでした。数多くの例がありますが、これらはアクセス2003のすべてであり、アクセス2010では機能しません。vba経由でグラフを作成するための2010へのクエリへのアクセス

クエリの結果をエクスポートして2010年に自動的に作成するvbaコードを実行する必要がありますデータの棒グラフを表示し、実行中のデータベースでこれを表示します。

誰かが私にいくつかのアドバイスを与えることができるなら、私はそれを非常に感謝し、またはこれまでのところ、私が開くように秀でる取得し、結果を表示することができ、2010年

に動作する有効なリソースへでもリンク問題のクエリ

もっと難しくするためには、特定のExcelファイルを開く必要があります。これはデスクトップ上のフォルダにあり、ボタンを押してVBAを実行するたびに、新しいページが追加されます。ワークブックを秀で、新しいグラフを表示してスプレッドシートに保存することで、後でExcelファイル全体を表示することができます。

私は以下のコードを持っていますが、動作しません。範囲についてのビットは優れていますが、アクセスは範囲を認識していないようです(私の知識の範囲では実際には機能しないので、本当に驚きません)。

私の2番目の考えは、 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 

2003年のバージョンのアクセスとエクセルについてadodb code typeのものが見つかりましたが、これを動作させることができませんでした。オプションの半分はアクセスによって認識されなくなったようです...

私は遠く離れており、本当に助けに感謝します。ここで

おかげ

サム

答えて

4

は、いくつかのメモです。レイトバインドを使用していますので、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 
+0

+1シンプルコード。 –

+0

ありがとうございます。これは素晴らしいスタートです。 私が得ることができない2つのこと.... "query1"を使用していますが、これを使用したいクエリに変更しましたが、アクセスできません。私はおそらく本当に明白な何かを失っているでしょう ワークシートの名前付けにdate関数を使用できますか? –

+1

Accessに問い合わせが見つからないと表示された場合は、スペルを確認してください。最も簡単なことは、シートが作成された後の現在の日付でシートの名前を変更することです。 - または/を使用しないでください、 '2012Apr21'と言ってください – Fionnuala

関連する問題