
11/07/2006, 10:27
|
|
Respecto al acceso simultaneo a una base de datos. Probablemente lo más indicado no sea emplear Access, sino una base de datos como SQL Server u Oracle, o la tecnología conocida como WAMP (Windows/Apache/MySQL/PHP); pero por si tienes que usar Access, te cuento lo que yo hago.
En una LAN local, con un servidor y equipos clientes, copio el ejecutable del programa en una carpeta del servidor y luego mapeo dicha carpeta como una unidad de red en las máquinas clientes.
Yo uso la unidad Z:\
Supongamos que tenemos una base llamada Base1.mdb
Es decir.
1) En el servidor creas una carpeta C:\Programa (por ejemplo). Esa carpeta está compartida para los usuarios del dominio con acceso de lectura y escritura.
2) En las máquinas clientes/usuario mapeas esa carpeta como una unidad de disco duro, z:\ (por ejemplo)
3) En el programa, en cualquier lugar que uses una conexión a la base de datos (que obviamente está en esa carpeta del servidor) tendrás que poner una referencia semejante a ésta:
Public Const vConnectStringPHN As String = "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=Z:\Base1.mdb; DefaultDir=" & Ruta & ";" & _
"Uid=Admin;Pwd=hola;"
(Varía según el método de conexión que estés usando, obviamente)
De este modo, cada vez que un usuario se conecta a la base, abre un recordset, y están todos trabajando sobre la misma base y el mismo programa.
No es la mejor variante, pero funciona.
Espero haberme explicado.
Salu2 |