VB-->Excel-->VB
Hej,
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
/Martin
Svara
Sv: VB-->Excel-->VB
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.
/Johan
Svara
Sv: VB-->Excel-->VB
Martin,
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-Dennis
Svara
Sv: VB-->Excel-->VB
Tänkte det kunde vara en genväg...
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...
/Martin
Svara
Sv: VB-->Excel-->VB
Kan du ta in en gifbild på ett diagram i VB applikationen?
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 Lantz
Svara
Sv: VB-->Excel-->VB
Martin,
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-Dennis
Svara
Sv: VB-->Excel-->VB
Tack för uppslagen.
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.
Svara
Sv: VB-->Excel-->VB
Du kan göra på följande sätt
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.
Svara
Sv: VB-->Excel-->VB
Nu vimsade jag lite i förra inlägget.
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.
Svara
Sv: VB-->Excel-->VB
Finns ett mycket smiddigaresätt att göra det. Hann inte klart exemplet. Men något sånt här borde fungera.<br>
<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.
Svara