Agregar colección a colección

28/08/2005 - 09:33 por Juan Melas | Informe spam
Tengo una clase en la que cree una propiedad collection a la que quiero
agregar un conjunto de collecciones, en la clase tengo una función
crearcolección a la que envio los parametros que quiero agregar, esta
funciona bien pero al querer agregar la coleccion creada a la colección me
da el siguiente error "Referencia a objeto no establecida como instancia de
un objeto", les paso el código que utilizo.


Dim colivacomp As New Collection

Dim colcompras As New Collection

colivacomp = Me.crearcoleccion("Ivacomp", "", "", "IdIvacomp", False, True,
"", "", 1)

colcompras = Me.crearcoleccion("Compras", "Ivacomp", "IdIvacomp",
"IdCompras", False, True, "", "", 2)

Me.coltables.Add(colivacomp) (Enesta línea salta el error)

Me.coltables.Add(colcompras)


Esta es el fragmento del código en la clase en la que creo la propiedad y
abajo en la que cargo las colecciones
Private _coltables As Collection

Public Property coltables() As Collection

Get

Return _coltables

End Get

Set(ByVal Value As Collection)

_coltables = Value

End Set

End Property



Public Function crearcoleccion(ByVal cTabla As String, ByVal cPadre As
String, _

ByVal cForeign As String, ByVal cPkey As String, ByVal lPkeyAct As Boolean,
ByVal lPkeyEsautoinc As Boolean, _

ByVal lcSql As String, ByVal lcUpfields As String, ByVal nNivel As Integer)
As Collection

Dim colitem As New Collection

colitem.Add(cTabla, "cTabla")

colitem.Add(cPadre, "cPadre")

colitem.Add(cForeign, "cForeign")

colitem.Add(cPkey, "cPkey")

colitem.Add(lPkeyAct, "lPkeyAct")

colitem.Add(lPkeyEsautoinc, "lPkeyEsautoinc")

colitem.Add(lcSql, "lcSql")

colitem.Add(lcUpfields, "lcUpfields")

colitem.Add(nNivel, "nNivel")

Return colitem

End Function

Preguntas similare

Leer las respuestas

#1 SoftJaén
28/08/2005 - 10:46 | Informe spam
"Juan Melas" escribió:

Tengo una clase en la que cree una propiedad collection a la que quiero
agregar un conjunto de collecciones, en la clase tengo una función
crearcolección a la que envio los parametros que quiero agregar, esta
funciona bien pero al querer agregar la coleccion creada a la colección me
da el siguiente error "Referencia a objeto no establecida como instancia
de un objeto"



Hola, Juan:

Observando el código que has publicado, entiendo que deberás de crear un
nuevo objeto «Collection», si tu intención es utilizar las propiedades y
métodos del objeto «Collection», porque con solo declarar una variable
objeto no es suficiente. Subsituye la línea

Private _coltables As Collection

por ésta otra:

Private _coltables As New Collection

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Juan Melas
28/08/2005 - 19:53 | Informe spam
Muchas gracias, ahora funciona ,con la idea que me diste.

Saludos.

"SoftJaén" escribió en el mensaje
news:e3%
"Juan Melas" escribió:

Tengo una clase en la que cree una propiedad collection a la que quiero
agregar un conjunto de collecciones, en la clase tengo una función
crearcolección a la que envio los parametros que quiero agregar, esta
funciona bien pero al querer agregar la coleccion creada a la colección
me
da el siguiente error "Referencia a objeto no establecida como instancia
de un objeto"



Hola, Juan:

Observando el código que has publicado, entiendo que deberás de crear un
nuevo objeto «Collection», si tu intención es utilizar las propiedades y
métodos del objeto «Collection», porque con solo declarar una variable
objeto no es suficiente. Subsituye la línea

Private _coltables As Collection

por ésta otra:

Private _coltables As New Collection

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#3 SoftJaén
28/08/2005 - 20:16 | Informe spam
"Juan Melas" escribió:

ahora funciona, con la idea que me diste.



Bueno, no es que te diera una idea, simplemente es lo que hay que hacer:
iniciar la variable objeto y crear una nueva instancia del objeto declarado.
:-)

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida