Guten Tag,
da ich mich jetzt schon ein wenig länger mit meiner Problematik beschäftige und eventuell den falschen Ansatzpunkt habe hoffe ich das mir von euch jemand helfen kann.
Mein Wunsch ist es in Excel bestimmte Zellen mit Werten zu füllen die ich mir über eine SQL abfrage aus einer per ODBC angebundenen Datenbank besorgen möchte.
Bisher habe ich es soweit geschaft das ich die gewünschten Daten in Excel untereiander ausgeben kann.
Beispiel:
Datum - Name - Anzahl
01.01.2019 - Peter - 5
01.01.2019 - Karl - 7
02.01.2019 - Uwe - 9
02.01.2019 - Uwe - 2
usw.
Nun will ich aber diese Daten nicht untereinander haben sonder pro tag nebeneinander.
Beispiel:
Datum Datum
01.01.2019 02.01.2019
Peter - 5 Uwe - 9
Karl - 7 Uwe - 2
Zu Begrenzung würde ich mir immer nur 5 Tage anzeigen lassen. Die durch eine Formularabfrage kommt.
Hier ist mein bisheriger Code Ansazt.
Private Sub abfrage_ok_Click()
Dim datum_von As String
datum_von = Abfrage.datum_t1
Dim datum_bis As String
datum_bis = Abfrage.datum_t2
Dim Counter
Counter = 0
Do While Counter <= 4
sqlstring = "SELECT ABSKPF.COMMAK, ABSKPF.AUNRAK, ABSKPF.MX01AK, ABSKPF.KORPAK FROM S2171AEV.ALMADAT.ABSKPF ABSKPF WHERE ABSKPF.CLASAK='1' AND ABSKPF.LITMAKISO={d '" & datum_von & "'} ORDER BY ABSKPF.COMMAK ASC"
connstring = "ODBC;DSN=ALMADAT;"
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A3"), Sql:=sqlstring)
.Refresh BackgroundQuery:=False
Unload Abfrage
End With
sqlstring = "SELECT ABSKPF.LITMAKISO FROM S2171AEV.ALMADAT.ABSKPF ABSKPF WHERE ABSKPF.LITMAKISO={d '" & datum_von & "'} GROUP BY ABSKPF.LITMAKISO ORDER BY ABSKPF.LITMAKISO ASC"
connstring = "ODBC;DSN=ALMADAT;"
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstring)
.Refresh BackgroundQuery:=False
Unload Abfrage
End With
Counter = Counter + 1
datum_von = DateAdd("d", -1, datum_von)
Loop
End Sub
Vielleicht kann mir jemand ja auch nur einen Wink mit dem Zaunpfahl geben der mir hilft :D
LG Niels
|