achtung lange Codewurst
Office 2002
Code:
Option Base 1
Global db As Database, rc As Recordset, rc1 As Recordset, rec As Recordset, rc2 As Recordset
Global aktuellesnodes As Variant
Global ss As Integer
Sub sql_umsatz()
Dim var As String
Dim w1 As Worksheet
Set w1 = Worksheets("monatsumsatz")
w1.Range("E3:K30").ClearContents
a = ActiveCell.Row
NR = ActiveSheet.Cells(a, 29).Value
Set db = DBEngine.Workspaces(0).OpenDatabase("J:\PROJEKT\PIS\test\test.mdb")
sql1 = "SELECT Mitarbeiter.PNR, Umsatz.NAME, Umsatz.VNAME,_"
Umsatz.[Umsatz/Jänner], Umsatz.[Umsatz/Februar], Umsatz.[Umsatz/März],_
Umsatz.[Umsatz/April], Umsatz.[Umsatz/Mai], Umsatz.[Umsatz/Juni],_
Umsatz.[Umsatz/Juli], Umsatz.[Umsatz/August], Umsatz.[Umsatz/September],_
Umsatz.[Umsatz/Oktober], Umsatz.[Umsatz/Novmeber], Umsatz.[Umsatz/Dezember]_
FROM Mitarbeiter INNER JOIN Umsatz ON Mitarbeiter.PNR=Umsatz.PNR"
Set rc1 = db.OpenRecordset(sql1)
On Error Resume Next
rc1.MoveFirst
ss = 2
i = rc1.RecordCount
w1.Select
While Not rc1.EOF
For anz = 1 To i
w1.Cells(3, ss).Value = rc1!PNR
w1.Cells(4, ss).Value = rc1!Name
w1.Cells(5, ss).Value = rc1!VNAME
w1.Cells(6, ss).Value = rc1!KST
w1.Cells(7, ss).Value = rc1![Umsatz/Jänner]
w1.Cells(8, ss).Value = rc1![Umsatz/Februar]
w1.Cells(9, ss).Value = rc1![Umsatz/März]
w1.Cells(10, ss).Value = rc1![Umsatz/April]
w1.Cells(11, ss).Value = rc1![Umsatz/Mai]
w1.Cells(12, ss).Value = rc1![Umsatz/Juni]
w1.Cells(13, ss).Value = rc1![Umsatz/Juli]
w1.Cells(14, ss).Value = rc1![Umsatz/August]
w1.Cells(15, ss).Value = rc1![Umsatz/September]
w1.Cells(16, ss).Value = rc1![Umsatz/Oktober]
w1.Cells(17, ss).Value = rc1![Umsatz/Novmeber]
w1.Cells(18, ss).Value = rc1![Umsatz/Dezember]
ss = ss + 1 'Zählvariable für die Schleife
rc1.MoveNext
Next anz
Wend
Call Chart
End Sub
Sub Chart()
'gibt die Tabelle aus
Dim lr As String
Dim lc As String
Range("A65536").End(xlUp).Offset(1, 0).Select
lr = ActiveWindow.RangeSelection.Address
lc = ss
'Range("A5:D18").Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("monatsumsatz").Range("A7:B17"), PlotBy:=xlColumns 'Diese Zeile sollte automatisch
'an das ende angepasst werden, wenn man zb nur die Daten von Januar bis März ausgeben lässt
ActiveChart.Location Where:=xlLocationAsObject, Name:="monatsumsatz"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Monatsübersicht"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
ps: kann man diese "Verweise" einmal über zB eine Globale Definition einbinden?? das nervt schon sehr das immer wieder anzuwählen!
mfg und Danke für die Hilfe (1000 mal)
