interaccion con Acces desde Visual Basic

Iniciado por kichan, 20 Diciembre 2006, 18:52 PM

0 Miembros y 1 Visitante están viendo este tema.

kichan


Tengo una aplicacion la cual tiene varios objetos data, resulta que a la hora de hacer mi programa
a cada objeto Data, le puse la propiedad DatabaseName  indicandosela explicitamente, es decir
con una ruta unica, (C\windows\programa.exe),  de esta manera funciona bien en mi compu, pero
a la hora de crear el instalador y que sea instalado en otra pc, y se instale en cualquier
carpeta va a tener problemas a la hora de hallar los objetos Data, mi pregunta es la siguiente
como puedo hacer, para que esta propiedad sea asignada al momento de que el usuario instale
la aplicacion o en el momento en que el programa sea ejecutado, o de que manera puedo hacer
para que al instalarse el programa pueda encontrar sin ningun problema los archivos access
que corresponden a la propiedad Databasename de el objeto Data.




Hans el Topo

Cita de: kichan en 20 Diciembre 2006, 18:52 PM

Tengo una aplicacion la cual tiene varios objetos data, resulta que a la hora de hacer mi programa
a cada objeto Data, le puse la propiedad DatabaseName  indicandosela explicitamente, es decir
con una ruta unica, (C\windows\programa.exe),  de esta manera funciona bien en mi compu, pero
a la hora de crear el instalador y que sea instalado en otra pc, y se instale en cualquier
carpeta va a tener problemas a la hora de hallar los objetos Data, mi pregunta es la siguiente
como puedo hacer, para que esta propiedad sea asignada al momento de que el usuario instale
la aplicacion o en el momento en que el programa sea ejecutado, o de que manera puedo hacer
para que al instalarse el programa pueda encontrar sin ningun problema los archivos access
que corresponden a la propiedad Databasename de el objeto Data.


weno si son controles en tiempo de diseño
cuando tu pones la ruta con el generador supongo, cortas todo y solamente dejas el nombre de la base de datos
de esta manera con tener la base de datos simplemente en la misma carpeta que el ejecutable ya te funciona

si lo tienes exo en tiempo de ejecución pues o pones simplemente el nombre y tienes la base de datos en la misma carpeta o pones App.Path & "\" & nombrebasedatos para marcar la ruta
 

kichan

supongo que debere agregarle la ruta hacia el archivo acces en tiempo de ejecucion, porque de esa manera saco el path tienes razon...podria usar la api GetFullPathName, o la misma funcion de VB, solo agrego el nombre del documento acces..
luego de haber sacado la ruta..pues obviamente rendra que estar dentro de la misma carpeta..interesante deducion.
gracias..voy a ver si me resulta..

CeLaYa

otra cosa que puedes hacer es usar un txt para guardar la ruta de la base de datos, asi cuando inicies tu aplicación y no encuentre la BD, que te pida el path y lo dejas almacenado, esto sería muy útil sobre todo si piensas poner tu BD en un servidor.
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Hans el Topo

Cita de: CeLaYa en 20 Diciembre 2006, 21:23 PM
otra cosa que puedes hacer es usar un txt para guardar la ruta de la base de datos, asi cuando inicies tu aplicación y no encuentre la BD, que te pida el path y lo dejas almacenado, esto sería muy útil sobre todo si piensas poner tu BD en un servidor.
?¿?¿?¿?¿?¿?¿?¿?¿?¿?

tan dificil es dejar solamente el nombre al crear la conexión?

tan dificil es si lo haces por ejecución

app.path & "\" & nombrebasedatos


sino es dificil no lo compliques que no tiene sentido xD
y lo de usar el api... no tiene sentido utilizar apis cuando tienes propiedades de objetos que se crean por defecto (como es el caso del app xD)
 

CeLaYa

pero cuando instale el programa generalmente lo hace en c:\archivos de programa\... y el tiene su base de datos en c:\windows, ahora si el windows de donde instale es nt tendria que poner c:\winnt, lo del app.path serviría si la pone en el mismo directorio de donde tenga su ejecutable, por lo de la api, no creo que sea necesario, el datacontrol acepta que el path que le pongas sea de "nombres largos"
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Hans el Topo

Cita de: CeLaYa en 21 Diciembre 2006, 14:46 PM
pero cuando instale el programa generalmente lo hace en c:\archivos de programa\... y el tiene su base de datos en c:\windows, ahora si el windows de donde instale es nt tendria que poner c:\winnt, lo del app.path serviría si la pone en el mismo directorio de donde tenga su ejecutable, por lo de la api, no creo que sea necesario, el datacontrol acepta que el path que le pongas sea de "nombres largos"

oki asias por la explicación que lo habia entendido mal xD

entonces o lo haces con el empaketador indicandole la ruta de donde quieres que lo instale %SYSTEMROOT%  , en la base de datos %SYSTEMROOT%\nombrearchivo xD