Typen unverträgliche Laufzeitfehlerehler 13 Sql
Hallo,
ich versuche seit Stunden eine etwas längere Sql-Abfrage via Vba zu starten und bekomme immer wieder dein gleichen Laufzeitfehler 13 ''Typen unverträglich' und habe keine blassen Schimmer woran es liegen könnte.
Die Sql-Anweisung an sich sollte eigentlich funktionieren (hab sie voher im plsql-developer getestet), aber Vba mag sich nicht!
Ich bin wirklich so langsam am verzweifeln.
Für eure Hilfe wäre ich sehr dankbar.
Grüße Lily
Hier nun der Code:
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER={Microsoft ODBC for Oracle};UID=nutzer;PWD=passwort;SERVER=server;" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT auft_auftragsnummer, kunde_abnehmer.kund_kunden_nr, kunde_abnehmer.kund_name1, leistungsarten_auftrag.nummer, leistungsarten_auftrag.bezeichnung, kostentraeger.kurzbezeichnung, kostentraeger.bezeichnung, segmentzuordnungen.seg__lfd_nr, segmentgruppen.seg__nummer, segmentgruppen.seg__bezeichnung, maschineneinsatz.betrag, maschineneinsatz.stunden, arbeiten_mitarbeiter.stunden, arbeiten_mitarbeiter.betrag" & Chr(13) & "" _
, _
"" & Chr(10) & "FROM kunde_abnehmer, auftraege, leistungsarten_auftrag, kostentraeger, segmentzuordnungen, segmentgruppen, maschineneinsatz, arbeiten_mitarbeiter" & Chr(13) & "" _
, _
"" & Chr(10) & "WHERE (auftraege.auft_istt_zugeordnet_kunde_abn = kunde_abnehmer.kund_lfd_nr)" & Chr(13) & "" _
, _
"" & Chr(10) & "AND (auftraege.auft_ist_zugeordnet_kostentrae = kostentraeger.lfd_nr)" & Chr(13) & "" _
, _
"" & Chr(10) & "AND (segmentzuordnungen.seg__auftrag_lfd_nr = auftraege.auft_lfd_nr)" & Chr(13) & "" _
, _
"" & Chr(10) & "AND (auftraege.auft_leist_art_lfd_nr = leistungsarten_auftrag.lfd_nr)" & Chr(13) & "" _
, _
"" & Chr(10) & "AND (segmentzuordnungen.seg__seg_gru_lfd_nr = segmentgruppen.seg__lfd_nr)" & Chr(13) & "" _
, _
"" & Chr(10) & "AND (maschineneinsatz.auft_auftrag_lfd_nr = auftraege.auft_lfd_nr)" & Chr(13) & "" _
, _
"" & Chr(10) & "AND (arbeiten_mitarbeiter.ist_zugeordnet_auftrag_auft_lf = auftraege.auft_lfd_nr)" & Chr(13) & "" _
, _
"" & Chr(10) & "AND (kunde_abnehmer.kund_kunden_nr like '20619')" & Chr(13) & "" _
, _
"" & Chr(10) & "AND ((segmentgruppen.seg__nummer like 'P_')OR (segmentgruppen.seg__nummer like 'NI%'))" _
)
.Name = "kund"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Antwort schreiben
Antwort 1 von Teddy7 vom 18.12.2019, 13:11 Options
Typen unverträglich heißt ja, dass Du z.B. ein numerisches Feld mit Text vergleichst.
also wenn z.B. kunde_abnehmer.kund_kunden_nr ein numerisches Feld wäre, dann ist like '20619' falsch.
Gruß
Teddy
Antwort 2 von Lily vom 18.12.2019, 13:32 Options
Ich hatte schon beide Vergleiche rausgenommen (sowohl die Segmentnr als auch die Kundennummer).
leider funktioniert es trotzdem nicht. Und sonst habe ich ja keine direkten Vergleiche nur eben die whereAnweisung.
Daher ist mir diese Fehlermeldung absolut ein Rätzel
ach, irg.wie ist die Abfrage zum Haare raufen...
Antwort 3 von Marie vom 18.12.2019, 19:44 Options
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER={Microsoft ODBC for Oracle};UID=nutzer;PWD=passwort;SERVER=server;" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT auft_auftragsnummer, maschineneinsatz.betrag, maschineneinsatz.stunden, arbeiten_mitarbeiter.betrag" & Chr(13) & "" _
, _
"" & Chr(10) & "FROM kunde_abnehmer, auftraege, leistungsarten_auftrag, kostentraeger, segmentzuordnungen, segmentgruppen, maschineneinsatz, arbeiten_mitarbeiter"
End With
Jetzt probierste mal nur das, und wenn da schon ein Fehler auftritt, dann machste mal den Mist hier raus, denn was ein Zeilenumbruch in einer Abfrage bewirken soll, ausser einer Fehlermeldung, weiss ich wirklich nicht.
& Chr(13) & "" _
, _
"" & Chr(10) Gruß Marie