** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Conexion base de datos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoConexion base de datos

 Responder Responder
Autor
Mensaje
Lean Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 14/Enero/2011
Estado: Sin conexión
Puntos: 44
Enlace directo a este mensaje Tema: Conexion base de datos
    Enviado: 23/Septiembre/2020 a las 20:00
Buenas tardes. Tengo una aplicación hecha en access 2013 que actualmente está funcionando en dos ordenadores, en su día separé las tablas de los formularios y el codigo, uno de ellos tiene la base de Datos y ambos ordenadores se conectan a la base de datos vinculando las tablas. El problema es que ahora se quiere poner la base de datos en un servidor y se instalara el programa que contiene los formularios y el codigo en otros ordenadores pero no quiero que los otros usuarios puedan ver lo que hay en las tablas, ahora mismo la conexión es vinculando las tablas pero no hay contraseña de manera que todos pueden abrir la base de datos incluso podrían borrarla. Mi pregunta es cual y como sería la mejor opción para conectarse a la base de datos que previamente me gustaría que estuviera protegida con contraseña. He buscado información pero no lo tengo claro he visto que cosas de ADO, ODBC, OLDB, pero no me aclaro bien. alguien me puede ayudar y de paso por favor la conexión cual sería más rapida puesto que la base de datos va a crecer bastante.
Gracias de antemano
Saludos
Lean
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 24/Septiembre/2020 a las 13:37
Entiendo que quieres realizar una aplicación que no tenga tablas vinculadas (y las consultas).

Eso implica tratar todo por código, hay que rehacer prácticamente la aplicación completa.

Si la BD va a seguir siendo Access, yo seguiría utilizando DAO que es el método nativo de la misma. Te creas un objeto Database que apunte a la B.D. de datos y referencias TODO a ese objeto.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Enviado: 24/Septiembre/2020 a las 14:30
Este para de hilos igal te ayudan algo,o te asustan...

http://www.mvp-access.com/foro/consultas-sin-tablas_topic83703_page1.html?KW=Tablas

http://www.mvp-access.com/foro/proteger-tablas-y-consultas_topic83467_page1.html?KW=Tablas
Arriba
hipromark Ver desplegable
Habitual
Habitual
Avatar

Unido: 18/Julio/2016
Localización: Caracas
Estado: Sin conexión
Puntos: 71
Enlace directo a este mensaje Enviado: 27/Septiembre/2020 a las 06:53
Pues una opción es poner clave al archivo donde está la base de datos e incluso puedes poner un macro para protegerlo en caso de que consigan la clave. Lo único es que un archivo acces siempre está expuesto a que lo borren o sea que borren el archivo. Pero eso lo solucionas haciendo backup diarios y así lo puedes recuperar. La otra opción es que pases las tablas a MySQL y uses un conector ODBC para conectar los formularios y querys que están en access a las tablas.

Elige que opción te sirve más y te doy más detalles de como debes hacer.
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Enlace directo a este mensaje Enviado: 03/Noviembre/2020 a las 15:54
Publicado originalmente por Mihura Mihura escribió:

Entiendo que quieres realizar una aplicación que no tenga tablas vinculadas (y las consultas).

Eso implica tratar todo por código, hay que rehacer prácticamente la aplicación completa.

Si la BD va a seguir siendo Access, yo seguiría utilizando DAO que es el método nativo de la misma. Te creas un objeto Database que apunte a la B.D. de datos y referencias TODO a ese objeto.



Hola buenas, Mihura.

Vaya por delante que no soy ningún experto en programación ni de Access ni de nada. Por si mis preguntas puedan parecer tontas.

Cuando dices  "si la base de datos va a seguir siendo Access...". ¿Eso se puede hacer? ¿Tener en un servidor remoto una base de datos Access y acceder desde equipos de escritorio?

Es que estoy en una situación parecida a la de Lean y lo que he ido viendo por ahí recomendaba usar SQL Server o MySQL en el servidor.

Actualmente tenemos la base de datos en un servidor en la red local y los formularios etc. en otra base de datos con tablas vinculadas. Esta configuración ya nos da problemas de corrupción de la base de datos cuando algún equipo está accediendo a ella y se corta la conexión.

Gracias.

Albert Hostein
Aprendiendo cayendo
Arriba
hipromark Ver desplegable
Habitual
Habitual
Avatar

Unido: 18/Julio/2016
Localización: Caracas
Estado: Sin conexión
Puntos: 71
Enlace directo a este mensaje Enviado: 03/Noviembre/2020 a las 16:54
Estimado Dokk:

Si la conexión a la red local se corta, siempre hay el riesgo de corrupción de datos, pero es un problema grave que se corte la conexión en la red local. Si esto sucede en tu organización, entonces es que la instalación de tus redes no está muy bien hecha.

Habiendo dicho esto, hay formas de guardar tus tablas en la web y conectar a ellas desde tus aplicaciones Access locales, pero todas las formas implican cambiar tus tablas Access a otro formato.

Opción 1. Sharepoint: esta sería la forma ideal ya que es la solución de Microsoft, pero no es gratis y tendrás que pagar algo como 10 dólares mensuales por cada usuario conectado. Es decir, si tienes 10 usuarios, pagarás 100 dólares mensuales, por ejemplo.

Opción 2. Aplicación web con Php y MySQL, esto implica rehacer TODA la aplición desde cero usando Php y MySQL junto con otros lenguajes. En este caso toda la aplicación tanto front end como back end queda en un servidor en internet, nada se almacenará localmente y ya nada estará en Access

Si necesitas ayuda más específica en la transición, puedes escribirme al privado y vemos si te puedo ser de ayuda.



Editado por hipromark - 03/Noviembre/2020 a las 17:00
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Enviado: 03/Noviembre/2020 a las 17:19
Hay lo dejo.....puede estar en un servidor que contrates o en un pc de tu red.....
https://migrar-access-a-web.com/
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 03/Noviembre/2020 a las 18:28
Hola dokk,

Si no eres un experto en programación, cualquiera de las soluciones que quieras tomar .... mal lo veo.

Access puede trabajar con:
- programa y tablas juntas en el mismo programa
- programa por un lado, tablas por otro y vincular
   * en el mismo equipo ambas cosas
   * en el equipo del cliente el programa y en otro ordenador (llamésmole) servidor las tablas
       - el servidor puede estar en la red local
       - el servidor puede estar localizado en un 'sitio de internet'
   * en un servidor las tablas por un lado y el programa individualizado en cada entorno de usuario

A todo esto que te he dicho, le cambias BD Access por BD MySQL, SQL, DB2, Oracle, ... y también funciona.

A cualquier combinación de los dos puntos anteriores, le quitas las tablas vinculadas sustituyéndolas por accesos directos vía programación y también va ... y muuuuuuuuuuuchísimo mejor, más rápido, más seguro ... y sin esos problemas de corrupción que relatas provocados por los cortes.

Incluso la solución que te proponen de poner la BD en Sharepoint funciona, aunque es malísima, ya que sólo podrás tener un usuario simultáneo.

La que apunta rokoko, crear un portal con un software específico que contenga el access a mi me encantó la presentación que nos hicieron. En el grupo AUGE (youtube) hay un video de la misma. Te adelanto que yo es una solución que voy a usar en el futuro si o si.

Resumiendo, que si ves que el tema te sobrepasa, contrata a un profesional que te haga una solución 'adhoc' a tus necesidades, que como ves, posibilidades hay muchas.

Un saludo.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Enlace directo a este mensaje Enviado: 04/Noviembre/2020 a las 12:59
Gracias por las respuestas.

No soy experto, porque no he tenido formación específica de programación, pero llevo veinte años pegándome con esta bases de datos. Siempre haciendo cosillas de andar por casa. Pequeños ERPs, para meter pedidos, sacar albaranes, alguna factura y cuatro cosillas más.

Ahora he heredado un ERP un poco más extenso en un sitio donde, como bien dice hipromark, la red es una mierda.

La solución a la que estaba dando vueltas es: poner los datos en un servidor en la nube con MySQL y conectar desde un frontend en Access. Que sería una tercera opción a las propuestas por Hypromark

He migrado los datos a un servidor local con MySQL para hacer la pruebas, ya he conectado un par de formularios directamente por programación como comenta Mihura y va bien (lo he hecho por ADO, no sé si hay otras opciones), pero de momento todo lo demás lo tengo con tablas vinculadas por ODBC. Y en estas estoy, dudando qué hacer. ¿Tablas vinculadas o programación? 

Hay un tío en los foros de Microsoft, un tal Kallal, que tiene pinta de saber mucho, y su recomendación (bastante repetida, por cierto) si el volumen de datos no es enorme, es seguir usando las tablas vinculadas. ¿Qué opinéis de esto?

Les echaré un vistazo a la web que propone Rokoko y a lo del grupo AUGE que dice Mihura.

Un saludo.
Albert Hostein
Aprendiendo cayendo
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 04/Noviembre/2020 a las 13:55
dokk,

Mejor SQL que MySQL.

Si no tienes muchos datos (hablo de que tengas tablas con un millón de registros), mejor Access que SQL.

Muchísimo mejor el servidor en tu propia red local que en 'la nube'.

Muchísimo mejor el acceso directo a las tablas que mantener la vinculación (mi experiencia personal):
  - sólo hay una diferencia de 14 a 1 en velocidad
  - desaparecen las corrupciones de la BD
  - cambio brutal en la seguridad

... sería bueno que dijeras porque son mejores la vinculadas (según Kallal).





Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Enlace directo a este mensaje Enviado: 04/Noviembre/2020 a las 15:30
Yendo al tercer punto, mejor en la red local que en la nube, en los tiempos que corren estamos pensando en que se pueda acceder desde casa a la bdd. Y dados los problemas actuales con la red local... en fin... Iremos a la nube seguro.

Una vez en la nube, y aquí vuelvo a mi pregunta inicial, ¿puedo seguir usando Access como base de datos? Todas mis pesquisas me han llevado a SQL o MySQL, como opciones más adecuadas.

Entre estas dos, supongo que podría usar SQL Server Express, que si no me equivoco es gratuito. La base de datos actualmente no tiene más que 50 MB. ¿La recomiendas frente a MySQL por mejor integración con Access (por ser Microsoft)? ¿Por rapidez?

Respecto a lo de Kallal (es Albert Kallal), sólo he encontrado este post en el que a alguien que ya trabaja con DAO le recomienda seguir con el mismo sistema. También se lo he leído en algún otro post que no he sido capaz de encontrar (la verdad es que llevo una tuta de foros importante esta semana con esta historia)

En cualquier caso una vez me agarre a una opción, con ella seguiré.

Gracias.

Por cierto, estoy viendo el vídeo de presentación de AtoW que me has recomendado antes. Está interesante, pero todavía no he llegado al meollo.
Albert Hostein
Aprendiendo cayendo
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 04/Noviembre/2020 a las 16:18
Por empezar por el tercer punto, cuando veas el video completo te darás cuenta que en esa solución están las dos juntas.

Por otro lado, esto ya es muuuuuuuuy personal, yo no pondría los datos de mi empresa en la nube ni jarto vino, .... pero ahora lo que se lleva es eso e ir en contra de ese axioma es 'pecado mortal' LOL.

Una Bd Access en un servidor en la nube, te exigirá tener un servidor con windows, lo mismo que SQL. 

Por eso mismo, las BD MySQL son más baratas, aunque podrías contratar una SQL en Azure.

SQL mejor que MySQL, ¿porque? ... me siento más a gusto, las sentencias SQL son 'más' parecidas a las que siempre he utilizado con Access ... más algún detalle tonto muy personal.

Trabajo tanto con una como con otra, precisamente ahora acabo de terminar una subida a la red de una BD de un cliente a MySQL en un servidor Amazon, que ha quedado muy bien ... y que va como un tiro. Eso si, ha costado. Te recomiendo que te leas la lista de charcos que he pisado.

Por cierto, el post al que haces referencia de Kallal, el preguntante abre mediante código (no tablas adjuntas) una Database mediante un método poco usual. Y por eso le sugieren que siga empleando DAO ya que lo tiene implementado así, ya sabes, la ley del mínimo esfuerzo. Yo le habría dicho lo mismo.




Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
hipromark Ver desplegable
Habitual
Habitual
Avatar

Unido: 18/Julio/2016
Localización: Caracas
Estado: Sin conexión
Puntos: 71
Enlace directo a este mensaje Enviado: 04/Noviembre/2020 a las 16:21
SQL server es mejor que MySQL en efecto, pues es de Microsoft, yo menciono MySQL porque lo manejo mejor, solo por eso.

Hay una forma de conectar la base de datos guardando tus tablas en Google Drive pero es más una solución para sistemas con muy pocos usuarios y no es la más segura ni eficiente del mundo

Si deseas seguir usando Access en el Front End necesitarás una VPN, que cuesta algún dinerillo, con Sharepoint y otras soluciones de Microsoft que por supuesto no son baratas.

Yo cuando llegué a ese punto de querer manejar Access a través de internet exploré muchas opciones y finalmente no encontré ninguna lo suficientemente adecuada o con buen precio/valor y decidí que lo mejor era rehacer mis sistemas con Php y MySQL, luego de eso no le di mas vueltas: si es red local lo hago en Access, si es conexión web, lo hago con Php y MySQL.

Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Enlace directo a este mensaje Enviado: 05/Noviembre/2020 a las 08:34
Gracias a los dos. 

@Mihura Le echaré un vistazo a tu lista de charcos

@hipromark hice un curso de php con mysql hace años, pero ahora mismo veo complicado liarme con eso.  ¿Lo haces con algún framework en particular?

Gracias por todo y os dejo en paz con mis historias... de momento ;)

Que tengáis un buen día.
Albert Hostein
Aprendiendo cayendo
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Enlace directo a este mensaje Enviado: 27/Abril/2021 a las 13:59
Se puede cerrar este hilo.
Albert Hostein
Aprendiendo cayendo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable