Hallo,

ich versuche gerade Unicode-Daten von der AS/400 per VBA über eine QueryTable in Excel zu bringen. Die normalen Zeichen werden korrekt dargestellt. Die Sonderzeichen (wie z.B. kyrillisch) werden nur als Quadrate dargestellt. Der VBA-Code sieht folgendermaßen aus:

Code:
    
Set AS400 = New ADODB.Connection
AS400.Open "ConnectionString"

Dim qt As QueryTable
Dim rs As New ADODB.Recordset
    
' Recordset mit Abfrage-Ergebnis füllen
Set rs = AS400.Execute(sql)
     
' Recordset in Excel-Sheet ausgeben
Set qt = Sheets(blatt).QueryTables.Add(rs, Sheets(blatt).Range(zelle))
    qt.Name = "AS400_Query"
    qt.FieldNames = False
    qt.RowNumbers = False
    qt.FillAdjacentFormulas = True
    qt.PreserveFormatting = True
    qt.RefreshOnFileOpen = False
    qt.BackgroundQuery = False
    qt.RefreshStyle = xlInsertDeleteCells
    qt.SavePassword = True
    qt.SaveData = True
    qt.AdjustColumnWidth = False
    qt.RefreshPeriod = 0
    qt.PreserveColumnInfo = True
    qt.Refresh
Wenn ich nicht über einen ADODB.Recordset gehe, sondern beim QueryTables.Add eine neue ODBC-Verbindung angebe, funktioniert's problemlos. Nur wird hier halt immer eine neue ODBC-Verbindung aufgebaut, was ich vermeiden wollte.

Ist der ADODB.Recordset etwa nicht unicodefähig?

Gruß,
KM