Microsoft Excel

Herbers Excel/VBA-Archiv

Übergabe String hat Zeichenbegrenzung | Herbers Excel-Forum


Betrifft: Übergabe String hat Zeichenbegrenzung von: Marco
Geschrieben am: 28.10.2008 11:29:21

Hi Yal,

habe auf den alten Eintrag nicht mehr antworten können.

Die von Dir angegebene Zeile .commandtype hat es leider nicht gegeben. Habe Sie jedoch trotzdem vor commandtext angefügt. Eine Fehlermeldung gab es nicht, so dass das Statement zumindest möglich ist. Sobald ich allerdings wieder über die Zeichenzahl von 255 gehe steigt Excel nach wie vor mit Typen unverträglich aus. Hat also leider nicht funktioniert.

Hier nochmal das komplette Statement zur Abfrage:
With ActiveSheet.ListObjects.Add(...).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("sql statement")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "O2Menge"
.Refresh BackgroundQuery:=False
End With

  

Betrifft: AW: Übergabe String hat Zeichenbegrenzung von: fcs
Geschrieben am: 28.10.2008 18:13:52

Hallo marco,

meines Wissens kannst du den SQL-Abfrage Code auch als String übergeben und es ist nicht die "wilde" Form des zum Teil geschachtelten Arrays erforderlich, die Excel beim Aufzeichnen des Codes erzeugt.

Schaut dann etwa wie folgt aus:

Option Explicit
Dim strSQL As String
strSQL = "SQL-Statement Teil1"
strSQL = strSQL & "SQL-Statement Teil2"
strSQL = strSQL & "SQL-Statement Teil3"
strSQL = strSQL & "SQL-Statement Teil4"
With ActiveSheet.ListObjects.Add(...).QueryTable
.CommandType = xlCmdSql
.CommandText = strSQL
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "O2Menge"
.Refresh BackgroundQuery:=False
End With


Gruß
Franz


  

Betrifft: AW: Übergabe String hat Zeichenbegrenzung von: Marco
Geschrieben am: 29.10.2008 12:19:12

Hi Franz,

der Tipp war Gold wert. genauso hats funktioniert. Demnach konnte der Array nur die 255 Zeichen fassen. So übernimmt er auch längere Texte!! Vielen Dank.

Gruß Marco


Beiträge aus den Excel-Beispielen zum Thema "Übergabe String hat Zeichenbegrenzung"