Tema usar base access compartida

A ti esperando tu vida vaya muy bien. ¿Me podrías ayudar? Mi proyecto funciona bien a nivel local . Usa 4 bases de datos de MS Access . PERO ahora necesito que las bases sean compartidas de modo que varios usuario de una red inalámbrica (de la cual aun se sus caracteristiacas) puedan hacer las consultas o modificaciones a las bases . PERO NO TENGO idea como lo hago. Uso objeto ADODBconnection, y recordset. Uso adlockoptimistic. Y acceso las bases abriendo la conexión y abro y cierro los recordset Le indico la ruta por connectionstring y el proveedor por provider.
¿Qué hay que hacer?. ¿DÓNDE se colocan las bases? ¿Qué cambios en el programa? ¿Qué se hace en el PC donde están las bases?. ¿Necesito algún programa aparte ejecutando en donde este la base? ¿Es mucho?
¿Tienes alguna ayuda para mi POCO traumática? O bien un link, ¿manual o ejemplo? TODO se agradecerá Amigo gracias Isabel (SOS)

1 respuesta

Respuesta
2
^^,!
Esta pregunta si es algo complicada de responder, 1ro porque en realidad existen muchos métodos para poder realizar una conexión de bd y 2do porque no conozco mucho tu nivel de conocimiento para poder darte un solución que ambos entendamos.
¿Me gustaría ver como manejas tu conexión actual?, también me gustaría saber si manejas archivos ini o de repente origen de datos (ODBC).
Si gustas puedes revisar info. Sobre estos dos puntos que te consulto, existe mucha información variada.
Espero esta info. Para poder ayudarte a hacer los cambios necesarios o sugerirte alternativas rápidas de solución a tu dificultas.
Hola! Gracias por responder. Sobre cuanto sé la respuesta es muy poco. En este proyecto NO uso ODBC , establezco la conexion con 3 pasos 1)conex.provider ="microsoft.jet.oledc.4.0" 2) conex.connectionstring = "ruta_de_la _base"  3)conex.open, (con set conex = new adodb.connection. Gracias otra vez. isabel
Sabiendo lo que ya tenemos, la solución más rápida a criterio mio, seria no tocar mucho tu conexión actual y quizás usar artificios a nivel de window.
Un detalle antes, lo que te indique tendrás que probarlo y corroborar que funcione, para serte sincero no he trabajado con aplicaciones en red trabajando con una BD en ACCESS, solo lo he trabajado a nivel local, actualmente trabajo con SQL SERVER para aplicaciones multiusuario(Cliente - Servidor).
Bueno ya habiendo aclarado esto, pues a trabajar.
Imagino q "ruta_de_la _base" tendra un formato similar a este -> "c:\Sistema\BD.mbd"
Primero la carpeta donde se ubica tu bd habrá que compartirla tanto para lectura y escritura!
Luego crearemos una unidad de red en "Mi Pc", direccionandola a la carpeta de mi sistema en mi servidor. Asumamos que esta unidad se llame "Z:"
En ese caso habria q modificar "ruta_de_la _base" pa que tenga el siguiente formato.
-> "z:\Sistema\BD.mbd"
Y weno lo ultimo sera instalar tu aplicacion en todas los terminales o clientes.
En TEORIA deberia funcionar, mi respuesta seria mas consistente y probada pero no tengo forma ahorita :S, en mi casa solo tengo una pc. =P.
Weno pruebalo cuanto antes y me comentas, si no funka usaremos otro metodo. Jeje, como te comente existen "N" formas de resolver este tema.
Una aclaración. Cuando vinculas una carpeta compartida a una unidad de red en mi pc. Aparentemente desaparece el nivel de la carpeta compartida. entonces "ruta_de_la _base" tendria este formato. -> "z:\BD.mbd"
Si notas desaparece el nivel de la carpeta sistema ya que es la carpeta compartida.
Una cosa más probé en mi pc compartiendo mi carpeta de sistema y creando la unidad de redm también cambie la cadena de conexión. Levante mi aplicación y corrió sin problemas, bueno espero que sea = en una red real!
Gracias otra vez es interesante de probar. ¿Y si es compartida la carpeta la privacidad y la seguridad como tratarla? Porque hay otros usuarios-Isabel
Mmm. Eso si es un inconveniente, al menos de la forma que estas manejando tu conexión, aparte que la bd en access se maneja como un archivo, por ello necesita que este compartido.
Je je, sabes lo interesante de esto es que cada dificultad que se presenta tiene n maneras de solución.
Bueno viendo opciones de window, recordé un detalle de las carpetas compartidas.
Existe el comparto simple y el que se maneja con usuarios.
El simple es el que manejamos ordinariamente, pero el otro es ams complejo, ya que funciona en base a una lista de usuarios con derechos de lectura y/o escritura sobre el objeto compartido, obviamente asignados por el adm. de la pc. Si usamos el segundo criterio pueda que podamos manejar que puede acceder a nuestra carpeta compartida.
quisas no sea la manera mas eficiente hablando en terminos de programacion, pero es la mas rapida tomando en cuenta que tenemos un archivo de acces como BD.El proc a seguir en este caso. 1ro cambiar el modo de compartir archivos. abre el explorador de carpetas y ve a menu Herramientas>Opciones de carpeta>Ver. y ahi desmarca el check que dice "Utilizar uso compartido simple de archivos". una vez hecho esto las opciones de compartir & seguridad (opcion cuando le das click derecho a x carpeta), ya habran cambiado. cuando ya tengas esto tendras que especificar que usuarios podran conectarse a tu carpeta y que derechos tendran (leer/escribir). y weno el resto seguiria =,crear la unidad de red y modificar tu cadena de coneccion.
Ahora también podrías probar una conexión OBDC y ver si me conecta sin necesidad que la carpeta esta compartida, no tengo la certeza de eso. Pero si funka tu coneccio cambiaría. Seria algo así:
cn.ConnectionString = "DSN=MyObdc" 'Crear Odbc y reemplazar el nombre x el tuyo.
Con. Open
Se me olvidaba tienes que crear los usuarios en el servidor.. proc.:
Click derecho a mi pc. >Administrar>Usuarios Locales y grupos>usuarios.
Crea a los usuarios, ojo, los usuarios que crees tienen que coincidir con los que inician sesión en los terminales de tu sistema y también su contraseña.
Ejem.:
Mi pc es la terminal01. Mi inicio de sesión es Carlos y mi pass es 123..(esto en mi pc.. pa mi window). Tons si io quiero conectarme a la bd del servidor. Debe existir un usuario llamado carlos y con la misma pass 123.
Cuando crees usuarios ahí 4 checks debajo desmarca la 1ra y marca la 2da y la 3ra. La 4ta no la toques debería estar desmarcada.
Hola Carlos ! Espero estés muy bien. Gracias por tu atención. Oye, fui a la red local y en un PC cualquiera (pseudo servidor) puse la base en una carpeta compartida. Y lo dije en el connectionstring así nombre_del_pc\carpeta\base y puse una aplicación en varios pc y conecta a la base OK. (No le importa si la carpeta esta en escritorio o en otro lugar). Usé la rel local. ¿No se si esto es factible a la red inalámbrica ya que usuarios hay en una distancia aprox 1 KM, que NO están en la red local porque no hay cableado hasta allá. Y ahora a atacar el tema seguridad . Y te cuento . Y otras soluciones más profesionales que serian?
Gracias y avisame si quieres que pare con las preguntas. Saludos Isabel
Jajaja.Olas.. no te preocupes.me gusta la gente chismosa jajaja! Broma =).
Mmm.. da la impresión que el puntito que al principio era tu aplicación se va convirtiendo en una gran mancha... Cuéntame que tan grande es, si es que se podría saber.
Si me pides sugerencias. Io te diría que para empezar mudes de gestor de base de datos, por ejemplo Sql Server (Tiene una version Express que es gratuita). Con eso no tendrías tantos problemas de conectividad y seguridad.
¿Ahora me pregunto habrás intentando con le modo de compartir archivos pero especificando usuarios (con clave) como te lo mencione? Absuelve esa duda por favor, no mencionas nada de ello arriba. Esto seguridad se asemeja a la de un window 2003 server, por darte un ejemplo, solo que los usuarios en este caso son los inicios de sesión de las terminales.
Y bueno la otra opción seria
Con respecto a la inalámbrica, si puedes acceder al servidor por red, tons la conexión de tu sistema también es posible, al final de todo se comporta como LAN. En realidad yo me preocuparía más por la estabilidad de la señal inalámbrica. En este caso te recomiendo que trabajes con ip y no el nombre del servidor. Ejem.:
si usas \\Servidor\sistema
Mejor usa \\Ip\sistema (ejem. En perú se usa el 192.168.1.2) kedaria algo así \\192.168.1.2\sistema.. la conexión de esta manera seria mejor y más rápida.
Ahora otras soluciones más profesionales con ACCESS, no se me ocurre mucho :S, Sorry, pero tu bd trabaja como archivo, quizás por ello depende mucho que la carpeta este compartida.
HOla y Gracias ! ¿Por qué todos desprecian tanto a access? Oye no se SQL Server y por eso también trato de manejarme con access. Lo de IP lo intentare así como lo de usuarios autorizados. Lo que pasa es mi PC no esta en dicha red. Sino en la oficina donde trabajo y debo ir allá (a la red cuando puedo) Oye, ¿nadie esta usando access más que yo? (Más encima los datos que la poblan los capturo de excel en unas planillas de los demonios) Oye cuando tenga resultados nuevos te los comentare y has sido un gran apoyo para mi. ¿Ah y eso de las carpetas compartidas con clave servirá?
Y bueno ... Abrazo. Isabel
"Por que todos desprecian tanto a access??"
Mmm sorry si ofendi, o discrimine o desprecie o algo parecido. Con cualkier comentario, no fue en mala onda.
Mmm. Weno prueba de los usuarios, en mi prueba si funko, solo haslo como te lo explico arriba, solo autentifica al usuario que intenta acceder a la carpeta compartida a nivel de window, si sobrepasa esa validacion pues tu sistema correra normal.
Hola Ya volví y todo esta funcionando y te agradezco mucho tu ayuda paciencia y ademas tu claridad . Buen muchacho... Un abrazo ISABEL
¿Tabas Viva?
Jajaja, felizmente ya tenemos buenas noticias, me da gusto por ti, pero bueno te toca finalizar la pregunta y puntuar.
Gracias amigo . espero que la vida te trate bien. Soy de Chile y la ha habido problemas y si! Si! Estoy viva viva. Un abrazo y escríbeme a [email protected] cuando quieras

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas