Cuando ejecuta un lote de comandos usando ADODB, creo que ejecuta cada uno por separado. Para forzar la ejecución del siguiente comando, debe usar lo siguiente:
Set rs = rs.NextRecordset()
Cambiar el final de tu rutina a lo siguiente debería funcionar:
Set rs = New ADODB.Recordset
rs.Open SQLStr, cn, adOpenKeyset, adLockOptimistic
Set rs = rs.NextRecordset
MsgBox (rs.Fields(0).Value)