Hej, Varför gå via Excel? Är det inte enklare att skapa diagrammet direkt i VB med MS Chart Control? Jag har inte testat själv, men det ser ganska enkelt ut när man tittar på vilka egenskaper kontrollen har. Martin, Tänkte det kunde vara en genväg... Kan du ta in en gifbild på ett diagram i VB applikationen? Martin, Tack för uppslagen. Du kan göra på följande sätt Nu vimsade jag lite i förra inlägget. Finns ett mycket smiddigaresätt att göra det. Hann inte klart exemplet. Men något sånt här borde fungera.<br>VB-->Excel-->VB
Har en massa data i en accessdatabas.
Skulle vilja skicka in delar av det i ett excel-ark.
Låta excel göra ett digram av datat, och sedan presentera diagrammet i min VB-applikation.
Någon som vet nåt exempel på nåt liknande som jag kan titta på ??
Mvh
/MartinSv: VB-->Excel-->VB
/JohanSv: VB-->Excel-->VB
Ge oss mer information kring förutsättningarna. Johan har en poäng i det han skriver men problemet är kanske mer omfattande än vad du gett uttryck för.
Ms Chart Control i all ära men XL:s diagramkapacitet är bättre :-)
Mvh
XL-DennisSv: VB-->Excel-->VB
Det är ju så lätt att bara markera ett område i excel...och säga "fixa diagram" *S*
ms-chart kräver ju att man beskriver data på ett helt annat sätt...om jag inte har missat nåt...
/MartinSv: VB-->Excel-->VB
Isåfall skulle din VB App kunna ladda in data i ett XLark och sen sparka igång ett VBA makro som skapar GIf bilder på diagrammen i
XL
Vi använder den tekniken för att skapa html rapporter med gif diagram
Thommy LantzSv: VB-->Excel-->VB
Tommys förslag bygger på VB-->XL-->HTML-rapport och är statisk. Även den lösningen har sin poäng :-)
Men om det är endast en "genväg" du vill ta så kan det lätt bli en senväg!
Titta närmare på MS Chart-kontrollen - den kanske inte är så avskräckande när allt kommer omkring sig.
Mvh
XL-DennisSv: VB-->Excel-->VB
Jag fastnade till slut för MS Chart...av just de skäl Dennis hade...
Men...om inte annat..så för skoj skull ska jag testa ditt tips Tommy.Sv: VB-->Excel-->VB
Läs över data från Access til Excel. Detta görs enklast med Data1-kontrollen. Gör bara en texbox som kopplas till Access och en textbox som kopplas till Excel och gör en loop.
Gör så ett Macro som skapar diagrammet. Spara filen med namnet Autorun.xls. Det namnet medför att macrot körs automatiskt när filen öppnas.
I VB anropar du sedan filen med ett Shell-kommando eller använder ett OLE-objekt där du anger att filen skall visas som icon. När du dubbelklickar på iconen så öppnas diagrammet i ett nytt fönster.Sv: VB-->Excel-->VB
Det är alltså Macrot som man kan spara med ett speciellt namn så att det körs automatiskt när man öppnar filen. Namnet skall inte vara Autorun (det är ju något helt annat) utan det skall vara Autoopen.
Vad sedan Exceldokumentet sparas som spelar ingen roll. Sv: VB-->Excel-->VB
<br>
Lägg till en OLE kontrol och en knapp.
Klistra in följande kod:
<code>
Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Dim con As ADODB.Connection
Dim Range As Excel.Range
Dim Sheet As Excel.Worksheet
Dim Graph As Excel.Chart
Dim WorkBook As Excel.WorkBook
Const strQuery = "SELECT [Orders].[OrderDate], SUM([Order Details].[UnitPrice]*[Order Details].[Quantity]-[Order Details].[Discount])" + vbCrLf + _
"FROM [Orders] INNER JOIN [Order Details] ON [Orders].[OrderId] = [Order Details].[OrderId]" + vbCrLf + _
"GROUP BY [Orders].[OrderDate]"
On Error GoTo Command1_Click_Err
OLE1.CreateEmbed "", "Excel.Chart.8"
Set WorkBook = OLE1.object
Set Graph = WorkBook.ActiveChart
Set Sheet = WorkBook.Sheets.Add()
Sheet.Visible = xlSheetVeryHidden
Set con = New ADODB.Connection
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open strQuery, con, adOpenForwardOnly, adLockReadOnly
Set Range = Sheet.Range(Sheet.Cells(1, 1), Sheet.Cells(rs.RecordCount, rs.Fields.Count))
Range.CopyFromRecordset rs
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
Set Graph = WorkBook.Charts(1)
Graph.SetSourceData Range
Command1_Click_Exit:
Exit Sub
Command1_Click_Err:
Select Case Err.Number
Case 0
Resume Command1_Click_Exit
Case Else
MsgBox Err.Description, vbCritical
Resume Command1_Click_Exit
Resume
End Select
End Sub
</code>
Ändra anslutningsträngens sökväg till Northwind på din dator.