Access en sistema multiusuario

SpectrumCR

Lanero Regular
Se unió
9 Nov 2006
Mensajes
56
Hola Laneros, suelo trabajar en SQL Server, pero hace unos años hice un sistema con base de datos Access, la cual trabajaría en una sola PC, como ya se imaginan es hora de conectar otras PCs (dos más) con el mismo sistema sobre la misma BD, pero no se exactamente cómo hacer la estrategia, sabiendo de que no existe en la empresa un servidor de datos dedicado
icon8.gif
.

Tengo una idea central q es usar tablas vinculadas y un par de diseños sobre esto, pero no se cual usar, tal vez alguien tenga algunas mejores ideas(que no sea cambiar de BDs please
icon13.gif
).

Voy a poner una BD maestra sobre la PC, q es la q está más tiempo va a estar prendida (o va a estar
icon7.gif
) y hacer que las demás, tengan una base de datos con vínculos a esta.

1. El tema esta si sobre esa PC dejo la BD master en la ruta actual donde el sistema busca la BD.
ó
2. Creo una carpeta donde estará la BD master y creo una nueva BD con tablas vinculadas (el sistema apuntaría a esta última). Claro las otras PCs tendrán sus mdbs con tablas vinculadas apuntando a esta carpeta con la mdb master (me imagino que tendré q compartir la carpeta).

Bueno, esa es la idea q tengo y necesito decidirme por si la 1 o la 2, o alguna otra mejor idea
icon14.gif
.

Salu2

SpectrumCR
 

Grissom.

Lanero Reconocido
Se unió
15 Dic 2003
Mensajes
3,948
Crea conexiones ODBC en los equipos remotos apuntando a la base de datos en el determinado equipo.

Lo de la base de datos con vínculos no es necesario.

Finalmente, Access no está diseñado para acceso concurrente, tiene muchos problemas con ello, asi que pensar en una migración es casi inevitable.
 

Alexeyev

Lanero Reconocido
Se unió
6 Ene 2004
Mensajes
809
El_Rulas tiene razon creando los odbc's apuntando a la base de datos access no trandra tantos problemas, en lo que debes preocuparte principalmente es en las transacciones que realicen a esa base de datos porque access no tiene un soporte para esa concurrencia, al fin y al cabo tendras que cambiar esa base.
 

SpectrumCR

Lanero Regular
Se unió
9 Nov 2006
Mensajes
56
Ok. amigos gracias por sus respuestas, ambos han concordado. De hecho tendré que planear en cambiar de RDBMS. El hecho de cambiar de una conectividad ADO a una ODBC implica código, la solución que me plantié era la más rápida, pues solo era vincular tablas.

No me voy a apresurar. Voy a esperar q otros amigos Laneros, puedan opinar entre los Pro y Contras de usar ODBC o Seguir usando la conexión actual pero con bases de datos vinculadas.

Salu2

SpectrumCR
 

HRC-Akkanne

Lanero Reconocido
Se unió
6 Ago 2004
Mensajes
190
Bueno según veo el crecimiento de tu base de datos en el transcurrir del tiempo que hablas no ha sido exponencial, y conociendo las deficiencias que tiene access cuando una base aúmenta de tamaño casí que es seguro que el nivel transaccional tampoco es muy grande; por eso y como medida de contingencia y de manera temporal yo optaría por la segunda opción.

Sin embargo y si planeas a futuro como debe ser es bueno que tengas en cuenta el consejo de El_Rulas, lo mejor es migrar por optimización y calidad.
 

lualgovi

Lanero Regular
Se unió
29 Oct 2004
Mensajes
17
bueno si esperas a mañana te puedo dar la solucion de conexion multiusuario a acces si es para 2 o 3 usuarios ya q con mucha concurrencia podrias tener problemas la conexion es atravez de ado

ya lo encontre

Public Cn As Connection
Public Sub AbrirBase()
Set Cn = New Connection
With Cn
.Provider = "Microsoft.Jet.Oledb.3.51" 'access XP o 2003 funciona con oleDb 4.0
.ConnectionString = "ruta de la base"
.Open
End With
End Sub

Public Sub AbrirTabla(rs As Recordset, ByVal Tabla As String)
Set rs = New Recordset
rs.CursorType = adOpenDynamic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Source = Tabla
rs.ActiveConnection = Cn
rs.Open

End Sub



eso es un modulo usado para abrir acces multiusuario
ojala te sirva
 

Skrbass

Lanero Regular
Se unió
27 Dic 2007
Mensajes
1
La solución propuesta por lualgovi si funcionó? y dónde se debe copiar el código? Me pueden explicar paso a paso, soy novato en esto. Gracias!
 
Arriba