Lunes 18 de Noviembre de 2024, 03:55
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Como Conectar Access En Red Con Visual 6.0
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Como Conectar Access En Red Con Visual 6.0 (Leído 12488 veces)
Yovana
Nuevo Miembro
Mensajes: 20
Como Conectar Access En Red Con Visual 6.0
«
en:
Lunes 27 de Septiembre de 2004, 17:22 »
0
Saludos a todos
Mi situación es la siguiente:
Desarrolle una aplicación con Visual Basic 6.0 que trabaja con DAO para conectarse a una Base de Datos Access 97, hasta ahí estamos bien todo funciona, el lío es que al cliente ahora quiere que el sistema este en red, he buscado información y con ADO se puede hacer y He logrado conectar el sistema a la BD en la misma maquina pregunto como haría para el resto de los usuarios:
Tengo que crear un ODBC para cada maquina.
Como seria la conexión string para abrir la BD
O Tengo que hacer 2 ejecutables uno para el usuario que tenga la base de datos en su maquina y otro para los demás por que la dirección cambia
Otra pegunta es necesario que se cree un ODBC y si es así por que y cual Por lo que he visto hay tres tipos: de archivo, de sistema y de usuario. Y en que parte del código se usa por que en los ejemplos que tengo dice que cree el ODBC y en ninguna parte del código veo que lo nombren o será que yo no entiendo
Bueno eso es todo agradeceré cualquier ayuda que me puedan brindar
Gracias
Tweet
Nuestra ignorancia es directamente proporcional a la medida en que creemos en la injusticia. Lo que para la oruga es la muerte, para el resto del mundo es el nacer de una mariposa.
ebolo
Miembro MUY activo
Mensajes: 188
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #1 en:
Martes 28 de Septiembre de 2004, 13:23 »
0
Hola Yovana, yo lo que hago es que creo una base de datos en cada pc usario y vínculo todas las tablas a la base de datos que hace de servidor.
La aplicación funcionará igual poniendo la misma ruta de la bd que la que está en la aplicación.
Bueno es sólo una idea, seguro que hay más formas pero esta a mí me funciona.
Saludos y suerte.
Juanolo
Miembro MUY activo
Mensajes: 202
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #2 en:
Martes 28 de Septiembre de 2004, 16:31 »
0
Hey, gatúbela.
Yo estoy en el pasado y trabajo con DAO. El asunto es que he hecho aplicaciones que trabajan en red y no tengo ningún problema con ello. O sea, si ya tienes todo listo, con muy pocos cambios lo puedes echar a andar.
Lo único que debes cambiar es la ruta del archivo mdb, y eso lo puedes hacer capturando la carpeta en que esté como una unidad, o simplemente indicando una ruta como esta:
\\Deportes\vol1\Bases.mdb
Si capturas la carpeta como unidad, la dirección será una letra de unidad más el nombre de la tabla, por ejemplo: F:\Bases.mdb
Consejo:
En tu aplicación, no indiques la ruta en cada oportunidad en que accedes a la base de datos. En lugar de ello, utiliza una variable global de tipo string para almacenar este dato. Así, en el formulario principal o de inicio le indicas a la aplicación la ruta que ha de seguir UNA SOLA VEZ.
Una ventaja espectacular de este método, es que incluso le puedes permitir al usuario indicar la ruta de la base, y almacenar este dato (en un archivo INI, por ejemplo) para los usos posteriores.
Espero servirte de algo.
Salu2.
La luz que sólo se ilumina a sí misma, es oscuridad.
Yovana
Nuevo Miembro
Mensajes: 20
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #3 en:
Martes 28 de Septiembre de 2004, 18:16 »
0
Hola chicos
Ebolo:
no entiendo como es eso de vincular las tablas de una Base de dato a otra si me explica I love forever
juanolo:
al direccionar a la misma base de datos no me crearia conflictos al momento de que dos o mas usuarios accedan a ella al mismo tiempo.
Si mas no me equivoco las abre de modo exclusivo o como se haria abro la BD modifico y cierro (como cierro ???
) por que la idea es que todos trabajen al mismo tiempo.
Y si me equivoco por que y cuales serian la modificaciones que haria
disculpen la preguntadera y gracias
saludos
Nuestra ignorancia es directamente proporcional a la medida en que creemos en la injusticia. Lo que para la oruga es la muerte, para el resto del mundo es el nacer de una mariposa.
Yovana
Nuevo Miembro
Mensajes: 20
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #4 en:
Martes 28 de Septiembre de 2004, 18:25 »
0
juanolo cuando dices:
Si capturas la carpeta como unidad, la dirección será una letra de unidad más el nombre de la tabla, por ejemplo: F:\Bases.mdb
pregunto el sistema buscaria a F:\Bases.mdb en cualquier maquina de la red que se encuetre F:
Nuestra ignorancia es directamente proporcional a la medida en que creemos en la injusticia. Lo que para la oruga es la muerte, para el resto del mundo es el nacer de una mariposa.
Juanolo
Miembro MUY activo
Mensajes: 202
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #5 en:
Martes 28 de Septiembre de 2004, 18:32 »
0
Hola catwoman.
No he tenido grandes conflictos, en general acces se comporta en forma bastante inteligente y sólo se puede dar en un par de casos.
Obviamente, la base de datos no se debe abrir en modo exclusivo.
El conflicto se presenta cuando dos o más usuarios intentan modificar un registro al mismo tiempo. Para evitar esto, vale un par de recomendaciones:
1° No TOMAR el registro por mucho tiempo a la hora de editar. Lo ideal es que captures los cambios en cuadros de texto independientes y luego 'vacíes' la información a la tabla de una sola vez, en una fracción de segundo.
2° Aún así, todavía persiste la posibilidad de que dos usuarios lleguen a editar al mismo tiempo. Sin embargo, este error es interceptable y se puede poner un retardo que funciona más o menos así: Si hay otro usuario modificando, se producirá un error pues el registro está bloqueado, se ejecuta un retardo del siguiente tipo:
Código: Text
for i=0 to 1000
i=i+1
next i
y se vuelve a intentar la modificación.
En la ayuda de visual, en el manejo de errores, hay ejemplos más claros.
En fin, haz la prueba. Si no mantienes el registro abierto por mucho rato al editar, en el 99,999999% de los casos ni siquiera necesitarás del segundo punto.
Respecto a la solución de vincular las tablas desde una base local a la de red, tiene el problema de la dificultad al cambiar la dirección de la base de origen. Por otro lado, aquí puedo estar equivocado, pero me da la impresión que se pierde alguna funcionalidad con el manejo de índices (para usar el método seek, por ejemplo).
Bueno, haz la prueba, lo demás irá saliendo solo.
Salu2.
La luz que sólo se ilumina a sí misma, es oscuridad.
seek20
Miembro activo
Mensajes: 32
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #6 en:
Martes 28 de Septiembre de 2004, 21:38 »
0
Hola Yovana!!!
Contestando a tu pregunta sobre los ODBC's efectivamente existen tres tipos y te recomiendo que el que utilices para tu sistema lo generes de preferencia en la opción de ODBC de sistema ya que con esta opción no importa que usuario se firme a la red y con qué clave, ya que la configuración personalizada de cada usuario no tendrá efecto sobre este tipo de ODBC que es visible para cualquier usuario que trabaje en dicha PC.
En cuanto al uso de ADO tú podrás hacer la conexión por medio de un ODB o de un string conection que se conecte directamente a la BD usando la ruta física de la misma, sin necesidad de crear un ODBC, y a mi gusto es mejor usar una conexión directa que te evite estar generando ODBC's en cada cliente que use el sistema.
Este es el texto que debes incluir en tu string de conexión:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BD.mdb;Persist Security Info=False
puedes cambiar esto C:\BD.mdb por por una unidad de red, solo que también esta se debe crear en cada uno de los clientes que utilice tu sistema.
Espero que la información te sea de ayuda, pero en caso de que tengas dudas me encuentro a tus órdenes para lo que gustes.
Suerte y me avisas como te fue!!!
Yovana
Nuevo Miembro
Mensajes: 20
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #7 en:
Miércoles 29 de Septiembre de 2004, 15:35 »
0
Gracias a todos por la ayuda
seek20
Probé colocando solo el conection string y funciona para todas la maquinas así que me olvido de los ODBC y gracias por aclararme cual es el mas útil.
Pero como el tiempo es oro y no tengo mucho de ninguno, como para modificar todo el sistema, que es grande lo entrego con dao y con mas tranquilidad aprendo mejor ado y lo actualizo
Juanolo
como evito que se habrá la base de batos de modo exclusivo es un valor que se le da directamente a la BD por Access, por que en ocasiones estoy ejecutando el sistema y quiero abrir la BD por Microsoft Access da error, cierra todo, le crea copias de seguridad, me insulta y no abre ojo no es siempre.
Bueno eso es todo
Y otra vez gracias por ayudarme
Nuestra ignorancia es directamente proporcional a la medida en que creemos en la injusticia. Lo que para la oruga es la muerte, para el resto del mundo es el nacer de una mariposa.
Juanolo
Miembro MUY activo
Mensajes: 202
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #8 en:
Miércoles 29 de Septiembre de 2004, 16:31 »
0
Estimada Señorita:
Primero, en un módulo declaro las variables globales que voy a necesitar:
Código: Text
Global BaseDeDatos as String 'Cadena con el path de la base de datos
Global WsGen As Workspace 'Espacio de trabajo general.
Global BaseGen As Database 'Base de datos general.
Global PwdGen As String
En el formulario de inicio, capturo el valor de esas variables:
Código: Text
Private Sub MDIForm_Load()
Set WsGen = Workspaces(0)
BaseDeDatos = App.Path & "\Bases.mdb"
PwdGen = ";pwd=" 'Para base sin clave
' PwdGen = ";pwd=clave01" 'Para base con clave (la clave es 'clave01')
End Sub
Luego, el código para cargar la base de datos sería:
Código: Text
Set BaseGen = WsGen.OpenDatabase(BaseDeDatos, False, 0, PwdGen)
La instrucción false, indica que se abre en modo compartido. Si quieres abrirla en forma exclusiva debes cambiar ese valor por True.
Nota, también, que basta con cambiar la cadena de BaseDeDatos para que cambie la base de datos utilizada en toda la aplicación.
Por otro lado, al cargar la base en BaseGen, puedo hacerlo sólo una vez en todo el proyecto; sólo la descargo al salir, o para tareas puntuales como compactar.
Cuando necesites abrir un recordset, indicas, por ejemplo:
Código: Text
Dim Vista As Recordset
Set Vista = BaseGen.OpenRecordset("Clientes", dbOpenTable)
Vista.Index = "RutCli"
O para un control data:
Código: Text
Data1.DatabaseName = BaseDeDatos
Data1.RecordSource = "Select ...
Espero te sirva.
Salu2.
La luz que sólo se ilumina a sí misma, es oscuridad.
Yovana
Nuevo Miembro
Mensajes: 20
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #9 en:
Jueves 30 de Septiembre de 2004, 14:09 »
0
Ahora si soy completamente feliz graciassssssssss a todos hay un cliente satisfecho
seguimos en contacto chicos
Nuestra ignorancia es directamente proporcional a la medida en que creemos en la injusticia. Lo que para la oruga es la muerte, para el resto del mundo es el nacer de una mariposa.
Yovana
Nuevo Miembro
Mensajes: 20
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #10 en:
Miércoles 20 de Octubre de 2004, 18:42 »
0
Saludos
Por diferentes problemas no habia podido programar nada pero ya de vuelta empiezo a probar lo que me explicaron y me da el error "3170" no se puede encontrar en ISAM instalable y en la ayuda dice
"No se pudo encontrar la DLL de un archivo ISAM instalable. Este campo es necesario para vincular las tablas externas (que no sean las tablas de ODBC o de base de datos de Microsoft Jet).
Estoy trabajando con acces y hasta donde se es un BDD de Microsotf Jet
Las ubicaciones de todos los controladores ISAM se mantienen en el Registro de Windows. Estas entradas se crean automáticamente cuando instala la aplicación. Si cambia la ubicación de estos controladores, necesitará corregir el programa de instalación de la aplicación para que refleje este cambio y generar las entradas correctas del Registro.
Causas posibles:
· Una entrada del Registro no es válida. Por ejemplo, este error se produce si está utilizando una base de datos de Paradox externa y la entrada de Paradox
no es paradox es acces
apunta a un directorio o controlador que no existe. Salga de la aplicación, modifique el Registro de Windows e intente de nuevo la operación.
· Una de las entradas del Registro apunta a una unidad de red
El sistema y la BDD estan en C:
y ésta no está conectada. Asegúrese de que la red está disponible e intente de nuevo la operación."
Data3.DatabaseName = BDD
SQL = "select Técnicos.CodTec, Técnicos.Nombre, Técnicos.Apellido from Técnicos"
Data3.RecordSource = SQL
Data3.Refresh
(El error da en esta linea)
Do
If Data3.Recordset.Fields("CodTec") = Text7.Text Then
(aja se lo quito y en esta linea dice la varible de bloque With no esta definida)
Mi no enterder nada
alguien quie me explique que hise mal o por que da ese error por que en ultima opcion la maquina esta loca
no se si es que me falta instalar algo en la maquina que es y donde se consigue
ayuda
Saludos
Nuestra ignorancia es directamente proporcional a la medida en que creemos en la injusticia. Lo que para la oruga es la muerte, para el resto del mundo es el nacer de una mariposa.
Yovana
Nuevo Miembro
Mensajes: 20
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #11 en:
Miércoles 20 de Octubre de 2004, 21:13 »
0
ya lo arregle era un bobada
Nuestra ignorancia es directamente proporcional a la medida en que creemos en la injusticia. Lo que para la oruga es la muerte, para el resto del mundo es el nacer de una mariposa.
Sagutxo
Miembro MUY activo
Mensajes: 320
Re: Como Conectar Access En Red Con Visual 6.0
«
Respuesta #12 en:
Miércoles 20 de Octubre de 2004, 21:21 »
0
Salu2.
No se si es diferente tu forma de hacerlo pero cuando yo abro un RECORDSOURCE lo hago de difernete manera los campos de las tablas.
Data1.DatabaseName = PathDeBase
Data1.RecordSource = "SELECT * FROM Clientes ORDER BY IdCliente"
Sustituyo el '*' por los campos que deseo, pero sin ponerles el clientes. delante del campo. Osea:
Data1.RecordSource = "SELECT IdCliente, Nombre, Direc, Tfno FROM Clientes WHERE PATATIN ORDER BY PATATAN"
Espero haberte podido ayudar.
Mi mujer tiene un físico bárbaro!!!. Einstein.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Como Conectar Access En Red Con Visual 6.0