Re: Manejar Una Matriz De "Result"
A primera vista, es algo raro una matriz de results. Supongo que lo que quieres es tener ya en memoria todos los valores posibles de las tablas auxiliares (tipos de iva y demás) para ahorrar tiempo luego al buscarlos, pero el procedimiento no me parece correcto (aunque nunca lo he probado).
Hay cosas que creo que están manifiestamente erróneas, sobre todo ésta:
Dim RS as result
....
RS=dbfunciones.tiposdeiva(id)
mimatriz.Add(RS)
RS=dbfunciones.bases(id)
mimatriz.Add(RS)
....
Estás asignando una y otra vez RS a la matriz de objetos. Como un objeto se pasa siempre por referencia, lo que tienes es una matriz de referencias al mismo objeto. Es decir, cada vez que cambias el valor de RS cambias el contenido de la matriz. Al final obtendrás o una matriz de referencias que apuntan a nada (puesto que el objeto como tal se destruye y reconstruye cada vez) o una matriz de referencias todas al mismo Result, que, además es local, por lo que al terminar la función no estoy muy seguro de qué pasa con él.
Creo que hay otras maneras mejores de tener esos valores disponibles a mano cuando los necesites, aunque sin saber exactamente qué es lo que quieres hacer ni de qué va tu aplicación no me atrevo a aconsejarte cuál.
Suerte