OK, procesem eliminace jsem konečně objevil problém. Nevím, proč k tomu dochází, ale musí to být chyba v ovladači MySQL ODBC.
Celočíselná pole s atributem UNSIGNED způsobují chybu. Odstranění tohoto atributu způsobí, že hodnota pole bude vrácena jako standardní typ Integer. Ovladač ODBC zřejmě nezpracovává převod z typu unsigned int na typ vbscript Integer správně a místo toho vrací ukazatel na Long.
Také jsem si všiml tohoto problému na polích tinyint(1), které jsem používal jako booleovské hodnoty. Změna datového typu z tinyint(1) na int(11) [výchozí] tuto chybu také odstranila.
Snad to pomůže někomu dalšímu. FYI Tento problém jsem také zveřejnil na fóru MySQL ODBC Driver, ale nikdo se neobtěžoval odpovědět.