Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verbindung zu Oracle, Datensätze fehlen

Forumthread: Verbindung zu Oracle, Datensätze fehlen

Verbindung zu Oracle, Datensätze fehlen
29.05.2024 11:31:30
Bücherwurm80
Hallo,
ich bin neu hier und habe ein Problem in VBA was ich mir nicht erklären kann:
Ich habe ein sql- String den ich mittels QueryTables.Add in Excel schreiben will das sieht so aus:
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("A5"), sql:=sql)
.name = "Abfrage von VAS"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With

Prinzipiell funktioniert es auch und gibt erstmal keinen Fehler zurück.
ABER! es fehlen Datensätze denn wenn ich den sql direkt Oracle Developer ausführe bekomme ich diese Sätze zurück:


ISBN BEZEICHNUNG ANFANGSBESTAND ZUGANG ENDBESTAND GSMENGE FREIEXM RW PARTIE MENGEOPART ABSLJ ACBEW ACBESTAND UMSM GSM NETTO UMSLJ NETTOVT ABSLMVT UMSLJVT ABSLJVT LP
9783949822018 Schreiber: Unbändig - Der SPIEGEL-Bestseller 1374 -3 1349 -6 0 0 0 28 48 0 0 221,13 -47,37 173,76 389,35 0 0 0 0 16,9
9783949822056 Schindelmann: Mutig ist das neue Schön 14456 -2 14475 -17 0 0 0 2 -37 -6 78 15,8 -134,24 -118,44 -292,02 0 0 0 0 16,9
9783949822087 Seiler: Spirituelle Botschaften von deinem Animal 0 -2 0 -7 0 0 0 5 22 -710 0 65,16 -83,8 -18,64 264,21 0 0 0 0 24,9
9783949822094 Seiler: Spiritual messages from your SPIRIT ANIMAL 3361 -1 3330 0 0 0 0 74 402 -44 83 861,31 0 861,31 4806,69 0 0 0 0 24,9
9783949822100 Seiler: Komm mit, Angst 2869 -12 2750 -1 0 0 0 159 1493 -51 216 1255,97 -40,3 1215,67 11802,32 0 0 0 0 16,9
9783949822124 Al-Bashtali: Die Kunst des Empfangens 387 0 350 0 0 0 0 41 222 -4 60 269,49 0 269,49 1454,65 0 0 0 0 14
9783949822155 Maiorino: Denk Mal Laut - 1838 -16 1893 -47 0 0 0 5 82 -29 126 58,2 -586,51 -528,31 887,09 0 0 0 0 24,9
9783949822179 Schulz: Mein erstes Tagebuch 1792 0 1787 0 0 0 0 20 187 -15 273 186 -46,5 139,5 1608,86 0 0 0 0 19,9
9783949822216 Seiler: LOVE CODES - 21 spirituelle Botschaften fü 5739 429 6539 -10 0 0 0 145 5224 -506 2789 1553,61 -148,78 1404,83 56350,53 0 0 0 0 22,9
9783949822230 Bayatpour: Steh auf und leuchte 5531 -15 5547 -30 0 0 0 117 2408 -118 358 1106,69 -334,77 771,92 22384,56 0 0 0 0 19,9
9783949822421 Seiler: Rise Up & Shine Journal 33 646 30 -1 0 0 0 609 2674 41 940 9517,13 -32,3 9484,83 41691,32 0 0 0 0 32,9


in Excel bekomme ich aber nur die Fett Makierten Zeilen raus. Warum??

Über Ideen zur Lösung wäre ich sehr dankbar.







Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wie sieht der SQL String denn aus?
29.05.2024 13:11:38
JoWE
AW: wie sieht der SQL String denn aus?
29.05.2024 13:16:27
Bücherwurm80
Hallo hier der SQL:
SELECT TRIM(Vas_P_Artikel2.Alternative_Artikelnr(V1.ARTIKELNUMMER,'E','N','3')) AS ISBN,
V7.BEZEICHNUNG,
nvl(VAS_STAT_Anfangbestand(V1.ARTIKELNUMMER,'33800','1',to_date('052024','mmyyyy')),0) AS ANFANGSBESTAND,
nvl(VAS_STAT_ZugangMenge(V1.ARTIKELNUMMER,'1',to_date('052024','mmyyyy')),0) AS ZUGANG,
nvl(VAS_STAT_BESTAND(V1.ARTIKELNUMMER,'33800','1',to_date('052024','mmyyyy')),0) AS ENDBESTAND,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.GSABSATZ ELSE 0 END),0) AS GSMENGE,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.FREIEX ELSE 0 END),0) AS FREIEXM,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.RUECKWAREABS ELSE 0 END),0) AS RW,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.PARTIEEX ELSE 0 END),0) AS PARTIE,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.ABSATZ-V1.PARTIEEX ELSE 0 END),0) AS MENGEOPART,
nvl(SUM(V1.ABSATZ+V1.GSABSATZ),0) AS ABSLJ,
NVL(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.KOMMISSIONSBERECHNUNG-V1.KOMMISSIONSLIEFERUNG ELSE 0 END),0)*-1 AS ACBEW,
nvl(VAS_STAT_ACBESTAND(V1.ARTIKELNUMMER,'33800',to_date('052024','mmyyyy')),0) AS ACBESTAND,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.ABSATZUMSATZ ELSE 0 END),0) AS UMSM,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.GSUMSATZ ELSE 0 END),0) AS GSM,
nvl(SUM(CASE WHEN TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN V1.ABSATZUMSATZ+V1.GSUMSATZ ELSE 0 END),0) AS NETTO,
nvl(SUM(V1.ABSATZUMSATZ+V1.GSUMSATZ),0) AS UMSLJ,
nvl(SUM(CASE WHEN V1.REISE_MESSE_AUFTRAG IN ('1','2','3','4') AND TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN (V1.ABSATZUMSATZ+V1.GSUMSATZ) ELSE 0 END),0) AS NETTOVT,
nvl(SUM(CASE WHEN V1.REISE_MESSE_AUFTRAG IN ('1','2','3','4') AND TO_DATE(TO_CHAR(V1.FAKTURDATUM,'MM'),'MM')=TO_DATE('05','MM') THEN (V1.ABSATZ+V1.GSABSATZ) ELSE 0 END),0) AS ABSLMVT,
nvl(SUM(CASE WHEN V1.REISE_MESSE_AUFTRAG IN ('1','2','3','4') THEN (V1.ABSATZUMSATZ+V1.GSUMSATZ) ELSE 0 END),0) AS UMSLJVT,
nvl(SUM(CASE WHEN V1.REISE_MESSE_AUFTRAG IN ('1','2','3','4') THEN (V1.ABSATZ+V1.GSABSATZ) ELSE 0 END),0) AS ABSLJVT,
vas_p_artikel2.preis(V1.ARTIKELNUMMER,'L','EUR',V1.FAKTURDATUM) AS LP
FROM
(SELECT * from VAS.VAS_MALIA_ABSATZ1 WHERE TO_DATE(TO_CHAR(FAKTURDATUM,'YYYYMM'),'YYYYMM')>= TO_DATE('202401','YYYYMM')
AND TO_DATE(TO_CHAR(FAKTURDATUM,'YYYYMM'),'YYYYMM')= TO_DATE('202405','YYYYMM')) V1,
VAS_ARTIKEL V7
WHERE V1.ARTIKELNUMMER = V7.ARTIKELNUMMER
AND V7.VERLAGSNUMMER='33800'
GROUP BY
TRIM(Vas_P_Artikel2.Alternative_Artikelnr(V1.ARTIKELNUMMER,'E','N','3')),
V7.BEZEICHNUNG,
nvl(VAS_STAT_Anfangbestand(V1.ARTIKELNUMMER,'33800','1',to_date('052024','mmyyyy')),0),
nvl(VAS_STAT_ZugangMenge(V1.ARTIKELNUMMER,'1',to_date('052024','mmyyyy')),0),
nvl(VAS_STAT_BESTAND(V1.ARTIKELNUMMER,'33800','1',to_date('052024','mmyyyy')),0),
nvl(VAS_STAT_ACBESTAND(V1.ARTIKELNUMMER,'33800',to_date('052024','mmyyyy')),0),
vas_p_artikel2.preis(V1.ARTIKELNUMMER,'L','EUR',V1.FAKTURDATUM)
ORDER BY 1
;
Anzeige
AW: wie sieht der SQL String denn aus?
29.05.2024 13:36:03
JoWE
Hallo nochmal "Namenloser der nicht grüßen kann",

hmm, wird wohl am SL-String liegen,
lässt sich ohne die DB allerdings nicht prüfen.

Ich stelle die Frage auf offen,
evtl. kann ja doch jemand Deinen SQL-String entwirren.

Gruß
Jochen
AW: wie sieht der SQL String denn aus?
29.05.2024 14:01:01
Bücherwurm80
Hallo Jochen,

tut mir leid für die schnelle und damit unhöflich klingende Antwort.

nun ja Oracle bringt ja 11 Sätze nur in der Excel Datei die Ich damit erstellen will kommen nur 5 Sätze Raus.
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("A5"), sql:=sql)
.name = "Abfrage von VAS"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
n = .ResultRange.Rows.count
End With
und 'n' meldet ebenfalls nur 5 Sätze.

Was mich wundert da es ja ein und dieselbe Abfrage ist.
Könnte es sein das es Zeichen im Inhalt der Rückgabe Werte gibt die in VBA nicht erlaubt sind und deswegen rausfiltert?

Grüße

Lydia

PS: Entschuldige bitte nochmals 😌
Anzeige
AW: wie sieht der SQL String denn aus?
29.05.2024 14:23:07
JoWE
Hallo Lydia,
sorry, da kann ich nicht weiterhelfen.
Frage wieder offen gestellt.
Gruß
Jochen
AW: wie sieht der SQL String denn aus?
30.05.2024 11:24:54
schauan
Hallöchen,

ich sehe auch erst mal nur Stochern im Nebel ...

1)
der String ist wirklich identisch? Also mit Copy & Paste von hüben nach drüben ...

2)
Bringt eigentlich schon die "untere" Abfrage unterschiede?
FROM
(SELECT * from VAS.VAS_MALIA_ABSATZ1 WHERE TO_DATE(T....

3)
ich hatte bislang nur per VBA Zugriff auch Oracle, da hatte ich neben SQL noch ein paar Zusätze, im Prinzip
objDynaset.Open sql_string, Me.Dbase, adOpenForwardOnly, adLockReadOnly
Die Datenbank ist bei Dir über die Verbindungsparameter eingerichtet, die beiden anderen Parameter kann ich da nicht entnehmen bzw. weiß nicht, was da ggf. Standard ist. Zuweilen wurde auch der Zeiger per MoveFirst auf den Anfang gestellt, und bei einigen Abfragen Select /*+ All_Rows */ * from verwendet.

4)
Probleme gab es u.a. mit Felder, deren Inhalt "Null" war.

5)
ich hatte die Daten auch per getrows in ein Array übernommen - was nicht immer ging. Aber das passt eben nicht zu den Möglichkeiten der querytables. Im Prinzip
On Error GoTo errorhandler

arrDyna() = objDynaset.GetRows()
... .Cells(2, 1 + iOffset).Resize(UBound(arrDyna, 2) + 1, UBound(arrDyna, 1) + 1).Value = WorksheetFunction.Transpose(arrDyna())
errorhandler:
If Err Then MsgBox "Fehlerhafte Daten in Datenbank bei Teil " & teil
If Err.Number = 13 Then 'Daten einfuegen ueber Schleife

...
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige