{"id":9702,"date":"2018-01-16T00:02:39","date_gmt":"2018-01-15T23:02:39","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=9702"},"modified":"2018-01-17T22:31:50","modified_gmt":"2018-01-17T21:31:50","slug":"conexion-con-sql-server-2017-desde-microsoft-access","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/conexion-con-sql-server-2017-desde-microsoft-access\/","title":{"rendered":"Conexi\u00f3n con SQL Server 2017 desde Microsoft Access"},"content":{"rendered":"<p>En esta entrada voy a explicar el mecanismo de conexi\u00f3n y uso de una base de datos <strong>SQL Server<\/strong> y c\u00f3mo usarla con un backend (datos y gestor) empleando un cliente de base de datos <strong>Microsoft Access 2013<\/strong> o superior, con extensi\u00f3n o formato <strong>accdb<\/strong>.<\/p>\n<p>Antiguamente se empleaban los proyectos <strong>ADP<\/strong>, pero ya no se encuentran disponibles. Actualmente se pueden realizar tareas, crear informes, formularios, consultas, mediante la conexi\u00f3n ODBC, desde Microsoft Access. Para poder editar las tablas tendremos que usar un gestor SQL Server o el que viene con el producto (SQL Server Management Studio). La edici\u00f3n de tablas y las restricciones, los tipos de usuarios y roles, as\u00ed como \u00edndices, lo gestionaremos desde el propio SQL server con el gestor.<\/p>\n<p>El <strong>escenario<\/strong> es el siguiente.<\/p>\n<p><!--more--><\/p>\n<p><strong>Esquema principal de la idea.<\/strong><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/Escenario-Access-SQLServer-palentino.es_.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9715\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/Escenario-Access-SQLServer-palentino.es_.png\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/Escenario-Access-SQLServer-palentino.es_.png 1024w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/Escenario-Access-SQLServer-palentino.es_-300x225.png 300w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Como ejemplo, emplearemos un <strong>SQL Server 2017 Express y una base de datos Access 2013<\/strong>.<\/p>\n<p>Lo primero que tendremos que hacer es desde una base de datos Access creada (accdb), situarnos sobre la pesta\u00f1a datos externos. Pulsar sobre Base de datos <strong>ODBC<\/strong>.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9717\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos1.png\" alt=\"\" width=\"821\" height=\"590\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos1.png 821w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos1-300x216.png 300w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><\/a><\/p>\n<p>Una vez realizado esto, marcaremos la opci\u00f3n, vincular al origen de datos creando una tabla vinculada.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9718\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos2.png\" alt=\"\" width=\"736\" height=\"543\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos2.png 736w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos2-300x221.png 300w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/a><\/p>\n<p>Nos situamos sobre la pesta\u00f1a Origen de datos del archivo y pulsamos en nuevo.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9719\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos3.png\" alt=\"\" width=\"445\" height=\"395\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos3.png 445w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos3-300x266.png 300w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/a><\/p>\n<p>Buscamos el controlador SQL Server.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9720\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos4.png\" alt=\"\" width=\"473\" height=\"352\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos4.png 473w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos4-300x223.png 300w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/a><\/p>\n<p>Asignamos un nombre y pulsamos siguiente.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9721\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos5.png\" alt=\"\" width=\"473\" height=\"352\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos5.png 473w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos5-300x223.png 300w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Pulsamos en finalizar.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9722\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos6.png\" alt=\"\" width=\"473\" height=\"352\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos6.png 473w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos6-300x223.png 300w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/a><\/p>\n<p>En esta ventana se nos indicar\u00e1 el servidor SQL donde deseemos conectarnos.<\/p>\n<p>Os dejo un servidor de prueba en la IP <strong>212.227.102.164,<\/strong> es un SQL Server Express 2017.<\/p>\n<p>Es interesante recordar que para toda base de datos SQL Server, tendremos que configurar el Firewall, configurando el puerto <strong>1433<\/strong>. Eso se puede hacer modificando los accesos en el windows Server donde se encuentre la instancia. Tambi\u00e9n en modo consola de comandos:<\/p>\n<pre class=\"lang:sh decode:true \">netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope = SUBNET profile = CURRENT\r\n212.227.102.164<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9723\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos7.png\" alt=\"\" width=\"506\" height=\"362\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos7.png 506w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos7-300x215.png 300w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a><\/p>\n<p>Ahora, indicamos la <strong>Autenticaci\u00f3n<\/strong>. Emplearemos la SQL Server, mediante el id de inicio de sesi\u00f3n y contrase\u00f1a escritos por el usuario.<\/p>\n<p>Os dejo el usuario<strong>: demo-lectura, password: demo<\/strong><\/p>\n<p>Este usuario podr\u00e1 insertar datos, ver datos en una tabla creada de ejemplo, pero no podr\u00e1 borrar registros. Os lo dejo para prop\u00f3sitos formativos. Podr\u00e9is daros cuenta como creando diferentes roles desde el servidor, podremos crear complejas aplicaciones Access-SQL Server. El desarrollo de frontends con Access es realmente r\u00e1pido y bueno, siendo una excelente herramienta <strong>RAD<\/strong>.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9724\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos8.png\" alt=\"\" width=\"506\" height=\"362\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos8.png 506w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos8-300x215.png 300w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a><\/p>\n<p>Establecemos el nombre de la base de datos. En nuestro caso es <strong>demostracion.\u00a0<\/strong>La instancia determinada puede tener m\u00faltiples bases de datos, por cada base de datos usuarios con determinados permisos. Del mismo modo, tambi\u00e9n pueden existir permisos aplicados a objetos, tablas, consultas, campos, etc.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9725\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos9.png\" alt=\"\" width=\"506\" height=\"362\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos9.png 506w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos9-300x215.png 300w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a><\/p>\n<p>El \u00faltimo paso, existen diversas opciones, marcad si quer\u00e9is la que viene por defecto.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9726\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos10.png\" alt=\"\" width=\"506\" height=\"362\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos10.png 506w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos10-300x215.png 300w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a><\/p>\n<p>Los datos de conexi\u00f3n deben quedar establecidos de la siguiente forma:<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9727\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos11.png\" alt=\"\" width=\"364\" height=\"386\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos11.png 364w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos11-283x300.png 283w\" sizes=\"auto, (max-width: 364px) 100vw, 364px\" \/><\/a><\/p>\n<p>Podemos probar la conexi\u00f3n.<\/p>\n<p>Una vez arrancada la base de datos Access, pedir\u00e1 el usuario y la password. Quitar la opci\u00f3n usar conexi\u00f3n de confianza, no tengo certificado.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9728\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos12.png\" alt=\"\" width=\"355\" height=\"165\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos12.png 355w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos12-300x139.png 300w\" sizes=\"auto, (max-width: 355px) 100vw, 355px\" \/><\/a><\/p>\n<p>Las opciones avanzadas muestran otro tipo de datos.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9729\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos13.png\" alt=\"\" width=\"355\" height=\"333\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos13.png 355w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos13-300x281.png 300w\" sizes=\"auto, (max-width: 355px) 100vw, 355px\" \/><\/a><\/p>\n<p>Nos pedir\u00e1 que vinculemos las tablas y consultas con las que vamos a trabajar. Usar dbo.tabla1, a modo de ejemplo.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9730\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos14.png\" alt=\"\" width=\"519\" height=\"452\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos14.png 519w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos14-300x261.png 300w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a><\/p>\n<p>En esta ventana podemos ver el resultado de la conexi\u00f3n y un formulario b\u00e1sico de ejemplo.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9732\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos16.png\" alt=\"\" width=\"817\" height=\"584\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos16.png 817w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2018\/01\/ODBC-datos-externos16-300x214.png 300w\" sizes=\"auto, (max-width: 817px) 100vw, 817px\" \/><\/a><\/p>\n<p>Nota: Si realizamos cambios en el gestor de SQL server, sobre los modelos de las tablas, ser\u00e1 necesario realizar actualizaciones en las vinculaciones desde Access.<\/p>\n<p><strong>Utilidades<\/strong>:<\/p>\n<p>Encontrar servidores SQL server gratuitos es posible, pero os dejaran 1 solo usuario y limitaci\u00f3n del tama\u00f1o de la base.<\/p>\n<p>Ejemplos son: somee.com<br \/>\n<a href=\"https:\/\/www.gearhost.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.gearhost.com\/<\/a><br \/>\n<a href=\"https:\/\/somee.com\/default.aspx\" target=\"_blank\" rel=\"noopener\">https:\/\/somee.com\/<\/a><br \/>\nY los servicios de <strong>Amazon AWS<\/strong>, durante 1 a\u00f1o gratis.<\/p>\n<p style=\"text-align: center;\"><strong>Puedes descargar el fichero demostraci\u00f3n, accdb de Microsoft Access<\/strong><\/p>\n<p><a href=\"http:\/\/www.palentino.es\/bases\/demo-sqlserver.accdb\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2874\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2012\/12\/Descarga.png\" alt=\"\" width=\"300\" height=\"100\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta entrada voy a explicar el mecanismo de conexi\u00f3n y uso de una base de datos SQL Server y c\u00f3mo usarla con un backend (datos y gestor) empleando un cliente de base de datos Microsoft Access 2013 o superior, con extensi\u00f3n o formato accdb. Antiguamente se empleaban los proyectos ADP, pero ya no se encuentran disponibles. Actualmente se pueden realizar tareas, crear informes, formularios, consultas, mediante la conexi\u00f3n ODBC, desde Microsoft Access. Para poder editar las tablas tendremos que usar un gestor SQL Server o el que viene con el producto (SQL Server Management Studio). La edici\u00f3n de tablas y las restricciones, los tipos de usuarios y roles, as\u00ed como \u00edndices, lo gestionaremos desde el propio SQL server con el gestor. El escenario es el siguiente.<\/p>\n","protected":false},"author":1,"featured_media":6893,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[612,40,7,295,215],"tags":[101,671,568],"class_list":["post-9702","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-access","category-bases-de-datos","category-software","category-sql-2","category-truco","tag-access","tag-microsoft","tag-sql-server"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/9702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=9702"}],"version-history":[{"count":14,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/9702\/revisions"}],"predecessor-version":[{"id":9788,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/9702\/revisions\/9788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/6893"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=9702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=9702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=9702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}