Problema con 3 tablas en vfp 6.0

Eduardo
30 de Diciembre del 2004
Hola que tal tengo un problema con un sistema con 3 bases de datos.

Lo que sucede es que tengo en un formulario con un combobox con 3 elementos que son sistema equipo y componete y dependiendo del que el usuario seleccione abre una tabla (use x) con el mismo nombre.

Despues el combo2 se llena con los valores del nombre dependiendo de la tabla abierta (lo hice usando use tabla ).

El problema es que cuando cambio el valor del combo1 (ya sea de sistema a componente o a equipo) me marca un error de que la que seleccione anteriormente ya esta abierta.

No se como cerrar una y utilizar otra tabla alguien me podria ayudar?

este es el codigo dentro de combo2 en accion click

if this.value = "Sistemas" then
use sistemas
thisform.combo1.rowsourcetype = 3
thisform.combo1.rowsource = "select nombre from sistemas into cursor cur_var"
endif
if this.value = "Equipos" then
use equipos
thisform.combo1.rowsourcetype = 3
thisform.combo1.rowsource = "select nombre from equipos into cursor cur_var"
endif
if this.value = "Componentes" then
use componentes
thisform.combo1.rowsourcetype = 3
thisform.combo1.rowsource = "select nombre from componentes into cursor cur_var"
endif


TodoTrucos
30 de Diciembre del 2004

if this.value = "Sistemas" then
IF !USED('sistemas')
SELECT 0
USE sistemas
ELSE
SELECT sistemas
ENDIF
thisform.combo1.rowsourcetype = 3
thisform.combo1.rowsource = "select nombre from sistemas into cursor cur_var"
endif

if this.value = "Equipos" then
IF !USED('equipos')
SELECT 0
USE equipos
ELSE
SELECT equipos
ENDIF
thisform.combo1.rowsourcetype = 3
thisform.combo1.rowsource = "select nombre from equipos into cursor cur_var"
endif

if this.value = "Componentes" then
IF !USED('componentes')
SELECT 0
USE componentes
ELSE
SELECT componentes
ENDIF
thisform.combo1.rowsourcetype = 3
thisform.combo1.rowsource = "select nombre from componentes into cursor cur_var"
endif

Un Saludo
TodoTrucos

Marcelo
30 de Diciembre del 2004
Haber, haber .....
optimicemos esto, si ??

this.rowsourcetype = 3
IF USED("cur_var")
USE IN cur_var
ENDIF
DO CASE this.value
CASE this.value = "Sistemas"
this.rowsource = "select nombre from sistemas into cursor cur_var"
CASE this.value = "Equipos"
this.rowsource = "select nombre from equipos into cursor cur_var"
CASE this.value = "Componentes"
this.rowsource = "select nombre from componentes into cursor cur_var"
ENDCASE

Queda mas sencillom no??