ADO Abfrage Excel
Hallo Zusammen,
ich frage eine SAP Datenbank mit VBA ab. Es klappt auch alles. Aber der ausgelesene Wert in der 1. Spalte stimmt nicht zu 100%
Die Spalte "select cast(VEKP.EXIDV as varchar(20))" wird zwar ausgegeben aber leider nie komplett richtig.
Ausgabe Excel
Ausgabe mit gleichem Code im SQL Editor (hier wird es richtig ausgegeben)
Es sind immer die letzten 4 Stellen. Ich habe es auch schon ohne Cast probiert.
Hat das jemand schon mal gehabt?
MfG
Florian86
ich frage eine SAP Datenbank mit VBA ab. Es klappt auch alles. Aber der ausgelesene Wert in der 1. Spalte stimmt nicht zu 100%
charge = ActiveCell.Value
chargeneu = Format(charge, "0000000000")
matnr = ActiveCell.Offset(0, -8).Value
selhu = "select cast(VEKP.EXIDV as varchar(20))," & _
"VEPO.VEMNG," & _
"cast(VEKP.ERDAT as Datetime)," & _
"cast(VEKP.ERUHR as time) " & _
"from SAPABAP1.VEKP inner join SAPABAP1.VEPO on VEKP.VENUM = VEPO.VENUM " & _
"where VEPO.CHARG = " & "'" & chargeneu & "' " & "and VEPO.WERKS = '1000' " & _
"order by VEKP.ERDAT, VEKP.ERUHR asc"
conn.Open "driver={HDBODBC32};Servernode=****;Uid=***;Pwd=*****;"
record.Open selhu, conn
ActiveSheet.Activate
Do While Not record.EOF
lastrow = ActiveSheet.Cells(Rows.Count, 18).End(xlUp).Row + 1
Sheets(1).Cells(lastrow, 18) = record.Fields.Item(0).Value
Sheets(1).Cells(lastrow, 19) = record.Fields.Item(1).Value
Sheets(1).Cells(lastrow, 20) = record.Fields.Item(2).Value
Sheets(1).Cells(lastrow, 21) = record.Fields.Item(3).Value
record.MoveNext
Loop
record.Close
conn.Close
Die Spalte "select cast(VEKP.EXIDV as varchar(20))" wird zwar ausgegeben aber leider nie komplett richtig.
Ausgabe Excel
Ausgabe mit gleichem Code im SQL Editor (hier wird es richtig ausgegeben)
Es sind immer die letzten 4 Stellen. Ich habe es auch schon ohne Cast probiert.
Hat das jemand schon mal gehabt?
MfG
Florian86
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 627411
Url: https://administrator.de/forum/ado-abfrage-excel-627411.html
Ausgedruckt am: 23.12.2024 um 15:12 Uhr
2 Kommentare
Neuester Kommentar
Das kommt weil deine Zelle von Excel als Zahl formatiert wird und und dieses alles ab 15 Stellen kappt, formatiere die Zelle im Code als "Text" und weise den Inhalt dann zu, dann kommt es richtig rüber.
https://access-excel.tips/excel-maximum-number-of-digits-workaround/
https://access-excel.tips/excel-maximum-number-of-digits-workaround/
With Sheets(1).Cells(lastrow, 18)
.Numberformat = "@"
.Value = record.Fields.Item(0).Value
End with