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
Bookmarks