Ayuda con la utilización de una variable en la sentencia condicional if usando Visual Fox Pro

Hola
Tengo la siguiente variable
ruta="H\minutario\tablas\enviados" + thisform.combo1.Value + ".dbf"
entonces comparo
if file(ruta)
   use (ruta)
else
   messagebox("No exiete", 0+16,"Sistema")
Endif
Me manda un error en la linea: IF FILE (RUTA)
Function Argument value, type, or count is invalid

1 respuesta

Respuesta
1
Pues esta raro. Yo noto que tal vez te faltan los dos puntos después de la "H" y una diagonal invertida al final de "enviados" pero eso no es lo que esta ocasionando el error que tienes.
Ese error es ocasionado cuando el argumento que le mandas a la función [FILE()] no es de tipo carácter, tal vez tu variable "ruta" en algún momento antes de la función esta cambiando su valor a otro tipo. Puedes poner esta línea justo antes de la instrucción "if file(ruta)" para ver que tipo de dato es la variable "ruta":
MESSAGEBOX(VARTYPE(ruta))
IF FILE(ruta)
...
El mensaje que mande debe decir "C", de carácter, si no es así, entonces ese es el problema, que la variable ruta es de otro tipo de dato. Prueba quitando el "thisform.combo1.Value", solo para ver si por ahí va el error.
Informa sobre lo que pasó..
Primero, que nada, wau :D que buena capacidad de observación... no se como no me di cuenta, je je...
Y ademas, sabio :D, tiene razón, la variable ruta cambia a G, creo que quiere decir que es de tipo general, ¿no?... como la cambio a C, ¿con un STR?
Si, así es, aunque se me hacer raro que se haga de tipo general, supongo tu [Combo Box] esta referenciado a un campo de tipo general. Creo que lo que deberías hacer es asegurarte de que el valor que tenga tu Combo sea carácter. Si usas la propiedad [ControSource], trata de utilizar un campo de tipo carácter como referencia para que no tengas problemas.
La verdad no creo que se pueda convertir de general a carácter. Trata de explicarme un poco más como estas llenando la información del Combo, porque creo que por ahí esta el problema.
El controlsource esta en : none
Y la forma en que lleno el combo, pues es un RowSource y ahí ingreso los valores 2001,2002, etc... y el RowSourceType lo pongo en 1- Value
Eh estado revisando y en el debbuger antes de la linea IF File(ruta)
Ruta sigue siendo C
lo eh solucionado.... deje de usar la variable ruta y decidi escribir todo
IF FILE("H:\minutario\tablas\enviados" + thisform.combo1.Value + ".dbf")
USE("H\minutario\tablas\enviados" + thisform.combo1.Value + ".dbf")
Y así ya no manda ningún error, y funciona

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas