Also, ich lade mittels odbcund einer SQL Abfrage Daten aus einer externen Datenbank nach Excel, die Abfrage enthält auch noch diverse Bedingungen.
Diese Bedingungen möchte ich mittels eines Makros ändern, bekomm dann aber eine Fehlermeldung "zu viele Zeilenfortsetzungen"
deshalb habe ich das SQL entsprechend Vorgaben die ich im Netz gefunden hab
Code:
strSQL = "SELECT ... "
strSQL = strSQL & " ... "
strSQL = strSQL & " ... "
umgeschrieben und die orginale SQL Anweisung des Makros duch die geänderte ersetzt.
Jetzt bekomme ich aber beim Kompilieren eine Fehlermeldung "Syntaxerror" und bleibt an der mit Rot Markierten Stelle stehen.
Was mache ich falsch oder was hab ich falsch gemacht beim anpassen der SQL Anweisung?
Sub treffen()
'
' treffen Makro
'
'
With ActiveWorkbook.Connections("Abfrage von PostgreSQL30").ODBCConnection
.BackgroundQuery = True
.CommandText = Array( _ <<<<<< ROT MARKIERT
strSQL = "select t_namen.id_name" <<<<<< ROT MARKIERT
strSQL = strSQL & "t_liste.id_training"
strSQL = strSQL & "t_namen.sum_zehn"
strSQL = strSQL & "sum(case when ergebnis_zehn = 9 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 8 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 7 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 6 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 5 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 4 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 3 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 2 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 1 then 1 else 0 end)"
strSQL = strSQL & "sum(case when ergebnis_zehn = 0 then 1 else 0 end)"
from
strSQL = strSQL & "t_liste"
strSQL = strSQL & "t_namen"
strSQL = strSQL & "t_Typ"
where
strSQL = strSQL & "t_liste.id_name = t_typ.id_name"
strSQL = strSQL & "and t_liste_name = t_namen.id_name"
strSQL = strSQL & "and t_liste.id_training = t_namen.id_name"
strSQL = strSQL & "and t_namen.v_name ilike '%'"
strSQL = strSQL & "and t_liste.id_dis = '804'"
strSQL = strSQL & "and t_liste.id_typ = 2"
Group by
strSQL = strSQL & "v_name"
strSQL = strSQL & "id_training"
strSQL = strSQL & "sum_zehn"
Order by
strSQL = strSQL & "t_liste.id_training desc ") <<<<<< ROT MARKIERT
.CommandType = xlCmdSql
.Connection = Array(Array( _
"ODBC;DSN=PostgreSQL30;DATABASE=sis;SERVER=192.168.20.48;PORT=5432;UID=postgres;; SSLmode=disable;ReadOnly=0;Protocol=7.4;FakeOidIndex" _
), Array( _
"=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;Fetch=100;UnknownSizes=0;M axVarcharSize=255;MaxLongVarcharSize=8190;Debug" _
), Array( _
"=0;CommLog=0;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;Bools AsChar=1;Parse=0;ExtraSysTablePrefixes=;LFConve" _
), Array( _
"rsion=1;UpdatableCursors=1;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=1;UseServerS idePrepare=1;LowerCaseIdentifier=0;XaOpt=1" _
))
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
With ActiveWorkbook.Connections("Abfrage von PostgreSQL30")
.Name = "Abfrage von PostgreSQL30"
.Description = ""
End With
ActiveWorkbook.Connections("Abfrage von PostgreSQL30").Refresh
End Sub
|