StudentDennis
Gebruiker
- Lid geworden
- 13 nov 2013
- Berichten
- 34
Goededag,
Ik wou graag vragen hoe ik het volgende probleem het best aanpak.
Ik heb een code die een grafiek opent in Excel vanuit access met access data. Verder heb ik de code om e-mails te verzenden met SendObject aangepast om het excel object mee te zenden als bijlage. Echter lukt dit nog niet. De mail wordt verzonden zonder bijlage. Ik was in de veronderstelling dat dit kon met SendObject, kan iemand bevestigen of dit kan? Of vraagt dit om een andere aanpak?
Het doel is om grafieken rond te mailen vanuit Access data (ik heb Outlook, Excel en Access 2007).
De Excel grafiek wordt niet opgeslagen, maar alleen geopend via deze code.
PS: op dit moment opent hij het object ook nog in Excel. Ik weet niet of dat de reden is dat hij hem niet mee kan zenden?
Ik wou graag vragen hoe ik het volgende probleem het best aanpak.
Ik heb een code die een grafiek opent in Excel vanuit access met access data. Verder heb ik de code om e-mails te verzenden met SendObject aangepast om het excel object mee te zenden als bijlage. Echter lukt dit nog niet. De mail wordt verzonden zonder bijlage. Ik was in de veronderstelling dat dit kon met SendObject, kan iemand bevestigen of dit kan? Of vraagt dit om een andere aanpak?
Het doel is om grafieken rond te mailen vanuit Access data (ik heb Outlook, Excel en Access 2007).
De Excel grafiek wordt niet opgeslagen, maar alleen geopend via deze code.
PS: op dit moment opent hij het object ook nog in Excel. Ik weet niet of dat de reden is dat hij hem niet mee kan zenden?
Code:
'OPEN CHART IN EXCEL
Dim oXL As Object ' Excel application
Dim oBook As Object ' Excel workbook
Dim oSheet As Object ' Excel Worksheet
Dim oChart As Object ' Excel Chart
Const cNumCols = 100 ' Number of points in each Series
Const cNumRows = 26 ' Number of Series
ReDim aTemp(1 To cNumRows, 1 To cNumCols)
Set oXL = CreateObject("Excel.application")
Set oBook = oXL.Workbooks.Add
Set oSheet = oBook.Worksheets.Item(1)
Dim rs01 As DAO.Recordset
Set rs01 = CurrentDb.OpenRecordset("SELECT * FROM qryWOperweekCombined")
Dim Teller As Integer
Teller = 0
Dim iRow As Integer
iRow = 1
Dim iCol As Integer
iCol = 5
With rs01
If .RecordCount > 0 Then
.MoveLast
TotRecords = .RecordCount
.MoveFirst
For Teller = 1 To TotRecords
aTemp(iRow, 1) = !Week
aTemp(iRow, 2) = !Total
aTemp(iRow, 3) = !bedrijfK
aTemp(iRow, 4) = !bedrijfV
.MoveNext
iRow = iRow + 1
Next Teller
oSheet.Range("A1").Resize(cNumRows, cNumCols).Value = aTemp
End If
End With
Set oChart = oSheet.ChartObjects.Add(200, 1, 745, 380).Chart
oChart.SetSourceData Source:=oSheet.Range("A1:D26")
oXL.Visible = True
oChart.HasLegend = True
oChart.HasTitle = True
oChart.SeriesCollection(4).ApplyDataLabels
oChart.SeriesCollection(4).DataLabels.Format.TextFrame2.TextRange.Font.Size = 7
oChart.SeriesCollection(2).ApplyDataLabels
oChart.SeriesCollection(2).DataLabels.Format.TextFrame2.TextRange.Font.Size = 7
oChart.SeriesCollection(3).ApplyDataLabels
oChart.SeriesCollection(3).DataLabels.Format.TextFrame2.TextRange.Font.Size = 7
oSheet.Columns("A:A").ColumnWidth = 18.71
oChart.SeriesCollection(1).Name = "=""Dates"""
oChart.SeriesCollection(1).XValues = "=Sheet1!$A:$A"
oChart.SeriesCollection(2).Name = "=""Total"""
oChart.SeriesCollection(2).XValues = "=Sheet1!$B:$B"
oChart.SeriesCollection(3).Name = "=""companyk"""
oChart.SeriesCollection(3).XValues = "=Sheet1!$C:$C"
oChart.SeriesCollection(4).Name = "=""companyv"""
oChart.SeriesCollection(4).XValues = "=Sheet1!$D:$D"
oChart.SeriesCollection(1).Delete
oChart.SeriesCollection(1).Name = "=""Total"""
oChart.SeriesCollection(1).XValues = "=Sheet1!$A:$A"
oChart.SeriesCollection(1).Interior.Color = vbBlue
oChart.SeriesCollection(2).Interior.Color = vbGreen
oChart.SeriesCollection(3).Interior.Color = vbRed
oChart.SeriesCollection(1).Trendlines.Add
oChart.SeriesCollection(2).Trendlines.Add
oChart.SeriesCollection(3).Trendlines.Add
oChart.SeriesCollection(1).Trendlines.Add(Type:=xlMovingAvg, Period:= _
2, Forward:=1, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False, Name:="Average").Select
oChart.SeriesCollection(2).Trendlines.Add(Type:=xlMovingAvg, Period:= _
2, Forward:=1, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False, Name:="Average").Select
oChart.SeriesCollection(3).Trendlines.Add(Type:=xlMovingAvg, Period:= _
2, Forward:=1, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False, Name:="Average").Select
With oChart.SeriesCollection(1).Trendlines(1).Border
.ColorIndex = 5
.Weight = xlThick
.LineStyle = xlContinuous
End With
With oChart.SeriesCollection(1).Trendlines(2).Border
.ColorIndex = 5
.Weight = xlMedium
.LineStyle = xlContinuous
End With
With oChart.SeriesCollection(2).Trendlines(1).Border
.ColorIndex = 4
.Weight = xlThick
.LineStyle = xlContinuous
End With
With oChart.SeriesCollection(2).Trendlines(2).Border
.ColorIndex = 4
.Weight = xlMedium
.LineStyle = xlContinuous
End With
With oChart.SeriesCollection(3).Trendlines(1).Border
.ColorIndex = 3
.Weight = xlThick
.LineStyle = xlContinuous
End With
With oChart.SeriesCollection(3).Trendlines(2).Border
.ColorIndex = 3
.Weight = xlMedium
.LineStyle = xlContinuous
End With
oChart.Legend.Position = xlBottom
oChart.SetElement (msoElementChartTitleCenteredOverlay)
oChart.HasTitle = True
oChart.ChartTitle.Text = "Workorders per week - last 26 weeks"
oSheet.Visible = True
oXL.UserControl = True
'SEND E-MAIL
Dim varName As Variant
Dim varCC As Variant
Dim varSubject As Variant
Dim varBody As Variant
varName = "name@server.com"
varCC = "name2@server2.com"
varSubject = "Hello"
varBody = "Text bla bla bla"
DoCmd.SendObject , oXL, acFormatXLS, varName, varCC, , varSubject, varBody, False, False
Laatst bewerkt: