Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problemas con ADODC y TREEVIEW

Estas en el tema de Problemas con ADODC y TREEVIEW en el foro de Visual Basic clásico en Foros del Web. Estoy creando una aplicación donde utilizo dos tablas una para provincias y otra para municipios. El control Treeview esta diseñado para crear un arbol de ...
  #1 (permalink)  
Antiguo 05/06/2005, 15:15
 
Fecha de Ingreso: junio-2005
Mensajes: 3
Antigüedad: 18 años, 10 meses
Puntos: 0
Problemas con ADODC y TREEVIEW

Estoy creando una aplicación donde utilizo dos tablas una para provincias y otra para municipios. El control Treeview esta diseñado para crear un arbol de nodos con ambas tablas de modo que la tabla municipio tiene un campo que me permite relacionar los datos con un registro, provincia, de la otra tabla.

He habilitado el poder añadir provincias y municipios funcionando correctamente. Otra opción es la de eliminar donde se distinguen dos posibilidades:

1. el nodo provincia no tiene asociados nodos municipios. En este caso no tengo problemas para eliminar el registro seleccionado. En el caso de seleccionar un nodo municipio tampoco tengo problemas.

2. el nodo provincia dispone de nodos municipios para lo cual la primera operación que realizo es borrar todos los municipios que dependan de la misma provincia. Para ello empleo el siguiente código: adodc2.recordsource ="delete * from tblMunicipio where tblMunicipio.provincia = ' " & seleccionKey & " ' "

Una vez ejecutada la línea indicada borro el treeview para que se deba cargar nuevamente los datos. Para ello en primer lugar realizo un adodc2.refresh y a continuación compruebo si el recorset esta o no vacio y es aquí donde tengo problemas ya que recibido un mensaje de error del tipo: la operación no está permitida si el objeto está cerrado, hace referencia a adodc2.

Si en vez de actualizar una vez realizado el borrado salgo de la aplicación y vuelvo a entrar no da ningún mensaje de error.

Alguien podría ayudarme por qué estoy parado y ya he probado varias cosas y nada.

Gracias y un saludo
  #2 (permalink)  
Antiguo 06/06/2005, 12:20
 
Fecha de Ingreso: abril-2005
Mensajes: 137
Antigüedad: 19 años
Puntos: 0
mmmmm
lo que pasa con tu adodc2 es que en el momento en que le das el recordsource de delete, se ejecuta la instrucción.
Al tratarse de una instrucción en lugar de una consulta el adodc ejecuta esta instrucción y su estado se torna como cerrado, lo que te aconsejo que hagas antes de hacerle el refresh es darle una cadena de query al recordsource del adodc y recien darle el refresh para que pueda cargar nuevamente tu treeview

saludos
  #3 (permalink)  
Antiguo 06/06/2005, 12:49
 
Fecha de Ingreso: junio-2005
Mensajes: 3
Antigüedad: 18 años, 10 meses
Puntos: 0
marcocho2005 he estado buscando sobre el empleo del query en la página de microsoft pero no he encontrato nada que me indique el modo de usarlo con un recordsource.
  #4 (permalink)  
Antiguo 07/06/2005, 09:37
 
Fecha de Ingreso: abril-2005
Mensajes: 137
Antigüedad: 19 años
Puntos: 0
Cita:
Iniciado por ea7alp
marcocho2005 he estado buscando sobre el empleo del query en la página de microsoft pero no he encontrato nada que me indique el modo de usarlo con un recordsource.
pos simple compañero
Dim SQL As String

SQL = "Select * From Tabla"

Set adodc2.recordsuorce = SQL
adodc2.refresh
y lllllisto
  #5 (permalink)  
Antiguo 07/06/2005, 13:19
 
Fecha de Ingreso: junio-2005
Mensajes: 3
Antigüedad: 18 años, 10 meses
Puntos: 0
Marcocho2005, he probado el código que has mandado, adaptado a la tabla que empleo, y obtengo el error: Número de argumentos erróneos o asignación de propiedad no válida.

Este código que mandas no es igual al siguiente:

adodc2.recourdsuorce="select * from tblMunicipio"

te lo digo porque esto elimina el error de adodc cerrado pero entonces no borra los registros.

Se me esta atragantando esa parte, la que menos me esperaba.

Gracias por las observaciones.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:53.