Bien, me alegro que funcione.
Ahora bien, como dice Alex, es mejor tener la información relevante por compañía, en una tabla, por ejemplo.
Además, tengo la impresión de que el código que escribes, en un formulario, presupone que todos los demás formularios usan la misma sesión de datos. Lo ideal es que cada formulario tenga su sesión de datos privada - eso te permite, con relativa facilidad, tener varios formularios abiertos al mismo tiempo.
Otra cosa que quisiera añadir es que una alternativa a abrir tablas (y la base de datos) en el DataEnvironment (entorno de datos) de cada formulario, también los puedes abrir en el evento Form.Load(). Quizás eso te dé más control, específicamente sobre la ruta de la BD.
Por ejemplo, si tienes una variable pública,
gcDataPath, con el directorio de datos para el cliente actual:
open database (gcDataPath + "MyDataBase")
use (gcDataPath + "cliente")
(Si quieres ir más hacia OOP, reemplaza gcDataPath por una propiedad del objeto aplicación.)
Saludos,
Hilmar.
>Hilmar!!!
>
>Trabaja de lo maximo!
>
>Te cuento lo que hise :
>1-Quite el Contenedor de bases del proyecto
>2-cree carpetas para cada empresa(Empre01, empre02...) con todos las tablas de datos dentro de cada carpeta.
>3-use un formulario con una lista desplegable de 1 a x empresas y de acuerdo a la empresa que se selecciona uso el siguiente codigo:(este formulario se muestra al iniciar el sistema)
>
>nempresa=thisform.SpnerEmpresas.value
>IF nempresa=1
> SET PATH TO C:\contable\EMPR01_
> OPEN DATABASE c:\contable\empr01_\mycontenedor.dbc SHARED
>ELSE
> SET PATH TO C:\contable\EMPR02_
> OPEN DATABASE c:\contable\empr02_\mycontenedor.dbc SHARED
>ENDIF
>
>
>Gracias por tu ayuda. y a UT por tener este sitio excelente.
>
>
>Att
>William
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)