Ich habe folgendes Problem:
ich habe zwei Datenbankabfragen im VBA mit SQL über eine ODBC-Schnittstelle erstellt:
1.
Columns("A:B").Select
Selection.ClearContents
AuftrNr = Worksheets("Wochensheet").Range("a1")
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=riszeit-test;UID=dba;PWD=sql", Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ade_ag.ag_bez, ade_auftr.auftr_id" & Chr(13) & "" & Chr(10) & _
"FROM ESCAD.ade_ag ade_ag, ESCAD.ade_auftr ade_auftr" & Chr(13) & "" & Chr(10) & _
"WHERE ade_ag.auftr_nr = ade_auftr.auftr_nr AND ((ade_auftr.auftr_id='" & AuftrNr & "'))")
.Name = "Abfrage von riszeit-test_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = True
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub
2.
Columns("A:H").Select
Selection.ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=riszeit-test;UID=dba;PWD=sql", Destination:=Range("A1"))
.CommandText = Array( _
"SELECT ade_auftr.auftr_id, ade_wert.abr_dat, ade_ag.ag_bez, ade_wert.zeit_von, ade_wert.zeit_bis, pstamm.p_name, pstamm.p_vorname, ade_wert.dauer" & Chr(13) & "" & Chr(10) & _
"FROM ESCAD.ade_ag ade_ag, ESCAD.ade_auftr ade_auftr, ESCAD.ade_wert ade_wert, taurus.pstamm pstamm" & Chr(13) & "" & Chr(10) & _
"WHERE ade_wert.ag = ade_ag.ag_nr AND ade_ag.auftr_nr = ade_auftr.auftr_nr AND ade_wert.p_nr = pstamm.p_nr AND ((ade_wert.abr_dat Between 20020800 And 20020900) AND (pstamm.abt_nr=17) AND (ade_wert.zeit_von Not Like zeit_bis) AND (ade_ag.ag_bez Not In ('ROBCAD','ROBCAD 1-3','ROBCAD 4-5')))" & Chr(13) & "" & Chr(10) & _
"ORDER BY ade_wert.abr_dat DESC, ade_wert.zeit_von DESC")
.Name = "Abfrage von riszeit-test_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = True
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub
Nun Das Problem:
Nur das Erste Makro läuft.
Ich habe die Vermutung, das der SQL-String der 2.Abfrage zu lang ist.
Ich habe glaube ich auch schon mal einen Beitrag im Forum über diese Thema gesehen, kann ihn aber nicht mehr finden.
Bitte helft mir.