In diesem Fall liegt es nur bedingt an der AS/400 sondern auch an Windows.
Wie ist die System-CCSID der AS/400 bzw. die Sprach-Id des ODBC-Users?
SBCS-Daten werden zuerst in die SBCS-CCSID des ODBC-Jobs gewandelt.
Anschließend erfolgt die Umwandlung von SBCS-EBCDIC in SBCS-ANSI.
Läuft dein PC auf deutsch 1252 hast du hier bereits dein 2. Problem.
VB6/VBA usw. speichern Strings aber als Unicode.

Also ist einzig und allein Unicode (UCS2) hier die Lösung:
select cast(myfield as [var]graphic(nn) ccsid 13488) as myfieldname, ...
select cast(myfield as N[var]CHAR(nn) ) as myfieldname, ...

In beiden Fällen erhältst du direkt Unicode in deinem VB6-Recordset.

Wichtig bei Abfragen mit Parametern ist auch hier die Definition der Parameter als adWChar/advarWChar!