2011-09-27 14 views
7

Tengo algunas tablas de acceso con muchos campos. He migrado cada tabla de acceso a tablas de servidor de 6 o 7 sql. Estoy usando sql server 2008. Ahora quiero usar Access como interfaz para poder ingresar los datos en el acceso, pero se almacenará en el servidor sql. Sé que tengo que hacer una conexión ODBC. Pero no estoy seguro de cómo crear un formulario de acceso para usarlo como front-end. Lo siento si es una pregunta básica ...Acceso como servidor front-end y sql como servidor

Respuesta

9

Es probable que desee comenzar con una base de datos de acceso vacía (ya que las estructuras de tabla y los formularios e informes existentes no coincidirán con lo que creó en el servidor SQL).

El primer paso es establecer una conexión ODBC a su base de datos SQL Server. Luego "vinculará" las tablas en SQL Server a su base de datos de Access.

Ahora, tiene una base de datos de Access con todas las tablas que vinculó desde SQL Server. Esas tablas aún "viven" en SQL Server y cuando las edite en Access, los datos se almacenarán en SQL Server.

A continuación, puede generar formularios e informes de acceso utilizando estas tablas como si las tablas fueran nativas de Access.

+0

¿Por qué necesita un DSN o una conexión ODBC para un ADP? La conectividad de SQL Server a través de SQLOLEDB está incorporada. Un DSN es una sobrecarga de despliegue también. Los ADP han existido desde Access 2000/2003. – gbn

+0

Depende de las preferencias del usuario. ADP es otra solución válida. Mi experiencia es con migraciones a tablas vinculadas (menos importante para este usuario si todas las estructuras de tabla son nuevas). –

+0

@LarryLustig He hecho la conexión ODBC al servidor sql yendo a 'Herramientas Administrativas-> Fuentes de Datos-> Sistema DSN-> agregué el servidor SQL y el nombre de la base de datos que quería usar como interfaz de usuario 'Ahora también he vinculado servidor sql utilizando 'sp_addlinkedserver 'connect', 'Access 2007', 'Microsoft.ACE.OLEDB.12.0', 'C: \ connect.accdb'' pero las tablas del servidor sql no se muestran en la base de datos de acceso vacía ¿Dónde me estoy equivocando aquí? – alex

0

Bueno, puede crear una conexión ODBC. También puedes crear una conexión ADODB. Si su objetivo es actualizar o modificar una base de datos SQL, ambas conexiones harán el truco.

Ahora, supongo que debe familiarizarse con los objetos correspondientes. Estas deberían ser tablas, consultas, comandos, etc., que le permitirán, por ejemplo, crear conjuntos de registros a partir de consultas SQL ... Una vez que tenga claro eso, puede, por ejemplo, asignar un conjunto de registros a un formulario a través del método Set myForm.recordset = myRecordset.open ....

1

La forma más versátil es utilizar enlaces ODBC a las tablas y vistas de SQL Server. Ese enfoque le permite la flexibilidad de vincularse a otras fuentes de datos ODBC, tablas en otros archivos de base de datos Jet/ACE, crear tablas Jet/ACE localmente en su base de datos, vincularlas a hojas de cálculo de Excel, y así sucesivamente. Puede incorporar una amplia gama de fuentes de datos.

Si elige ADP, estará limitado a la conexión OLE DB a una sola instancia de SQL Server. Y estará esencialmente bloqueado en SQL Server. No sería posible cambiar la aplicación a una base de datos de cliente-servidor diferente sin un gran esfuerzo de re-desarrollo.

En cuanto a la sobrecarga de despliegue con ODBC, aunque puede que le resulte conveniente utilizar un DSN durante el desarrollo, debe convertir sus enlaces ODBC a conexiones sin DSN antes de la implementación. De esta forma, su usuario no requerirá el DSN. Consulte la página de Doug Steele: Using DSN-Less Connections

+0

He creado una base de datos de acceso vacía. He hecho la conexión ODBC al servidor sql yendo a 'Herramientas Administrativas-> Fuentes de Datos-> Sistema DSN-> agregué el servidor sql y el nombre de la base de datos' que quería usar como interfaz Ahora también me he vinculado en el servidor sql utilizando 'sp_addlinkedserver 'connect', 'Access 2007', 'Microsoft.ACE.OLEDB.12.0', 'C: \ connect.accdb'' pero las tablas del servidor sql no se muestran en la base de datos de acceso vacía. Donde yo estoy yendo mal aquí? – alex

+0

Cuando crea el DSN, no agregue nada acerca de Access. Su DSN describirá las propiedades de una conexión a SQL Server. No es algo específico de Access, pero debe ser utilizable por cualquier aplicación que pueda usar conexiones ODBC. – HansUp

+0

Gracias, lo conseguí, estaba fallando en el 'enlace de las tablas'. ¡Ahora le he dado el nombre de ruta correcto para el DSN y su funcionamiento! ¿Puede sugerirme cuál será el mejor para utilizar a largo plazo como acceso frontal o una interfaz en dotnet? – alex