Me gustaría acceder a una base de datos de access desde internet para visualizar sus datos, pero SOLO VISUALIZARLOS, no para bajar la base de datos en sí. ¿Cómo tengo que hacerlo?
1 respuesta
Respuesta de asturcon3
1
1
asturcon3, Ingeniero en Informatica (5 años) Ingeniero Técnico en...
Básicamente tienes que hacerlo a través de una conexión ODBC (créala en la pestaña Sistema) a tu base de datos, y luego tienes que, desde tu lenguaje de programación de internet favorito, abrirla de la forma que permita ese lenguaje. Es demasiado largo para detallarlo aquí, pero te copio y pego un pedazo de código que igual te sirve, en ASP. var webConStr="DSN=WebCtrl"; bdd = Server.CreateObject("ADODB.Connection"); bdd.Open(webConStr); rs=bdd.Execute("select max(id),count(*) from ipsi where not eliminada and not borrador and idsujeto is not null"); idMax=rs(0).value; numMax=rs(1).value; Fíjate que en este punto del programa ya tengo en unas variables valores extraídos de la base de datos, que no hay más que formatear correctamente y volcarlos. Realmente, estoy simplificando mucho, pero es que tampoco hay sitio para mucho más.
Vamos a ver... ¿en webConStr tiene que ser la dirección ip o dns del servidor donde tenga la base de datos? Tienes otra solución para acceder, ¿pero hecha desde visual basic? Me seria muy útil. Muchas gracias.
Lo habitual para ver datos alojador en un servidor es crear una página web de acceso a esos datos. Lo puedes hacer tú mismo o, si realmente es simple, utilizar las páginas de acceso a datos que vienen con el Access, pero en este tema ya no te puedo ayudar porque no las he usado. Si lo que pretendes, por lo que deduzco de esto último que dices, es tener un access en un ordenador que vea datos situados en otro ordenador a través de internet, pienso que, la verdad, no deberías hacerlo. ¿Por qué? Pues porque abres un agujero de seguridad de tamaño colosal en tu servidor, en el que deberás dejar acceso completo a una carpeta pública. Si aún así quieres seguir por esa vía, y te apañas la seguridad por otros medios (por ejemplo, con una contraseña de acceso a ese recurso compartido) no veo cómo podrías hacer que los datos sean sólo de lectura, pues al tener la carpeta compartida, cualquiera con acceso podría bajarse la base de datos entera a su ordenador, y ahí hacer lo que quisiera. Además la conexión te iría muy lenta. Access no procesa conexiones por medio de sql/resultados, sino por compartición de archivos, por lo que el volumen de carga de la red es muy superior. Bueno, en fin, si te decides a pesar de todo, puedes probar algo así como Dim db As Database, tdf As TableDef Set db = CurrentDb Set tdf = db.CreateTableDef("tabla1") tdf.Connect = ";DATABASE=\\123.23.23.23\compartida\datos.mdb;PWD=unacontraseña" tdf.SourceTableName = "ENT" Db. TableDefs. Append tdf Donde como ves se puede usar una dirección IP. También puedes poner el nombre de tu servidor, si lo tiene. Luego va el nombre de la carpeta que has compartido y el nombre de la base de datos. Te he puesto de paso cómo especificar una contraseña de base de datos, si es que tienes activa alguna. Si no, quita la parte del PWD. SourceTableName dice el nombre de la tabla que está en la base de datos del servidor, tabla1 es el nombre del vínculo que te creará en tu base de datos local. Bueno, tu dirás, a ver si con esto nos acercamos más