Problema al ejecutar Formulario en Visual FoxPro 6

Tengo un pequeño problema cuando trato de ejecutar un formulario por primera vez, en este form tengo en listbox con la propiedad control.source dirigida a una tabla "Users", y con las propiedades Rowsource=users.user_name, y RowsorceType= 6 Campos.
Cuando abro FoxPro y trato de ejecutar este formulario aparece lo siguiente, "Error al cargar el archivo-Numero de registro 8. Form1 (o uno de sus miembros). Cargando el formulario o el entorno de datos .: No se encuentra el ALIAS USERS"
Pero este error deja de salir cuando en el administrador de proyectos le doy examinar a la tabla USERS, quizás deba escribir algún código que abra esa tabla automáticamente, ¿qué podría hacer aquí?

1 respuesta

Respuesta
1
Evidentemente mi estimado amigo, cuando utilizas el método RowsourceType establecido a campos, debes abrir primero la tabla, esto lo puedes hacer en el init de dicho formulario o si lo deseas lo puedes hacer antes de llamar a dicho formulario, debes también tener en cuenta que si no abres la tabla en un área determinada es decir SELECT N, donde N es un numero, la tabla puede cerrarse al abrirse cualquier otra tabla sin la instrucción SELECT.
Si tienes alguna inquietud, no dudes en planteármela.
Hola y gracias por reponer, Ya intenté colocando en el Init de ese formulario SELECT Users la cual es la tabla que estoy usando pero sigo con el mismo problema, ¿acaso debo colocar una ruta completa de donde se encuentra la tabla? SELECT c:\direcciones\....\...????, si es asi seria bastante problematico ya que habria que actualizar la ruta si cambias el proyecto de lugar.
De todas formas espero puedas ayudarme.
Lo que te recomiendo es que utilices una variable que puedes guardar en alguna tabla o estructura para que la puedas utilizar en cualquier momento y que el usuario pueda cambiar sin hacerlo por programación.
Tengo una aplicación en donde creo las empresas en las que se va a trabajar, por medio del nit o el código de la empresa las identifico y para cada una creo una ruta donde trabajo los datos, cuando llamo los datos escribo por ejemplo:
SELECT 1
Use empresas
Store rutaempresa to wrutadedatos
SELECT 2
Store wrutadedatos+"contribuyentes" to wtabla
use (wtabla) again shared
De esta forma el usuario puede cambiar la ruta de datos y por programación no hay que hacer absolutamente nada, por otra parte debes abrir la tabla antes de abrir el formulario, otra cosa que también debes tener en cuenta es que si le dices SELECT USERS se supone que ya tienes la tabla abierta y que simplemente estas seleccionando dicha área, si dices SELECT 1 y luego USE USERS estarás abriendo la tabla en el área 1 y no tendrás problemas, si no estas seguro de si la estas abriendo en otro procedimiento y no quieres preocuparte de ello utiliza las siguientes instrucciones:
IF USED('USERS') && Se pregunta si esta siendo usada
SELECT USERS && Se selecciona el area ya abierta mediante su alias
ELSE && sino esta siendo usada
SELECT 1 && Se selecciona el area uno
STORE WRUTADEDATOS+"USERS" TO WTABLA
USE (WTABLA) SHARED && Se abre la tabla en la ruta que te habia explicado de forma compartida o si lo necesitas la abres EXCL si no estas trabajando datos en red para otros usuarios
ENDIF
Espero haberte colaborado y despejado tus dudas, sin embargo si todavía siguen me lo comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas