{"id":567,"date":"2012-03-16T22:09:51","date_gmt":"2012-03-17T03:09:51","guid":{"rendered":"http:\/\/www.latindevelopers.com\/ivancp\/?p=567"},"modified":"2012-03-16T22:09:51","modified_gmt":"2012-03-17T03:09:51","slug":"migrar-de-ms-access-a-mysql-con-relaciones","status":"publish","type":"post","link":"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/","title":{"rendered":"Migrar de MS Access a MySQL con relaciones"},"content":{"rendered":"<p>He usado herramientas como MySQL Migration Toolkit (*) y Bullzip&#8217;s Access To MySQL, ambos hacen un excelente trabajo pero no exporta las relaciones entre tablas. Hacer esta tarea nos puede tomar varias horas (hasta ahora):<\/p>\n<p>Escrib\u00ed un c\u00f3digo VBA para identificar las relaciones generando c\u00f3digo MySQL con las sentencias de creaci\u00f3n, esto puede ser muy \u00fatil despu\u00e9s de la migraci\u00f3n usando cualquier herramienta libre.<\/p>\n<pre lang=\"vb\">Option Explicit\r\n'Copiar y pegar esta funci\u00f3n en un m\u00f3dulo nuevo\/existente de MS Access.\r\n\r\nPublic Sub printRelations()\r\n    Dim sql, fk As String\r\n    Dim i, j As Integer\r\n    For i = 0 To CurrentDb.Relations.Count - 1\r\n        sql = \"ALTER TABLE `\" & CurrentDb.Relations(i).ForeignTable & _\r\n            \"` ADD CONSTRAINT `\" & CurrentDb.Relations(i).Name & \"` FOREIGN KEY (\"\r\n        fk = \"(\"\r\n        For j = 0 To CurrentDb.Relations(i).Fields.Count - 1\r\n            sql = sql & \"`\" & CurrentDb.Relations(i).Fields(j).ForeignName & \"` ,\"\r\n            fk = fk & \"`\" & CurrentDb.Relations(i).Fields(j).Name & \"` ,\"\r\n        Next j\r\n\r\n        sql = Left(sql, Len(sql) - 1)\r\n        fk = Left(fk, Len(fk) - 1)\r\n        fk = fk & \")\"\r\n        sql = sql & \") REFERENCES `\" & CurrentDb.Relations(i).Table & \"`\" & fk & \";\"\r\n\r\n        Debug.Print sql\r\n    Next i\r\nEnd Sub<\/pre>\n<p>Para ejecutar el c\u00f3digo anterior, debemos invocarlo desde la ventana de Inmediato (Ctrl+G), luego solo tendremos que copiar el SQL generado para llevarlo a MySQL.<\/p>\n<p><a href=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys.png\"><img data-attachment-id=\"570\" data-permalink=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/ms-access-foreign-keys\/\" data-orig-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys.png\" data-orig-size=\"830,504\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ms-access-foreign-keys\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys-450x273.png\" data-large-file=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys.png\" loading=\"lazy\" src=\"http:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys-450x273.png\" alt=\"\" title=\"ms-access-foreign-keys\" width=\"450\" height=\"273\" class=\"aligncenter size-medium wp-image-570\" srcset=\"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys-450x273.png 450w, https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys.png 830w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p>Enjoy!<\/p>\n<p>(*)MySQL Migration Toolkit esta descontinuado pero aun sigue disponible desde los servidores Mirror de MysQL como: <br \/>\nhttp:\/\/mirrors.dotsrc.org\/mysql\/Downloads\/MySQLGUITools\/<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-567\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-567\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-567\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>He usado herramientas como MySQL Migration Toolkit (*) y Bullzip&#8217;s Access To MySQL, ambos hacen un excelente trabajo pero no exporta las relaciones entre tablas. Hacer esta tarea nos puede tomar varias horas (hasta ahora): Escrib\u00ed un c\u00f3digo VBA para &hellip; <a href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Compartelo:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-567\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=facebook\" target=\"_blank\" title=\"Haz clic para compartir en Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-567\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=twitter\" target=\"_blank\" title=\"Haz clic para compartir en Twitter\"><span>Twitter<\/span><\/a><\/li><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>M\u00e1s<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=email\" target=\"_blank\" title=\"Haz clic para enviar por correo electr\u00f3nico a un amigo\"><span>Correo electr\u00f3nico<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/\" target=\"_blank\" title=\"Haz clic para imprimir\"><span>Imprimir<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-567\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/www.latindevelopers.com\/ivancp\/2012\/03\/migrar-de-ms-access-a-mysql-con-relaciones\/?share=linkedin\" target=\"_blank\" title=\"Haz clic para compartir en LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":570,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[7],"tags":[45,12,44],"jetpack_featured_media_url":"https:\/\/www.latindevelopers.com\/ivancp\/wp-content\/uploads\/ms-access-foreign-keys.png","jetpack_shortlink":"https:\/\/wp.me\/p1tEO5-99","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/567"}],"collection":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/comments?post=567"}],"version-history":[{"count":6,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/567\/revisions"}],"predecessor-version":[{"id":574,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/posts\/567\/revisions\/574"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media\/570"}],"wp:attachment":[{"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/media?parent=567"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/categories?post=567"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.latindevelopers.com\/ivancp\/wp-json\/wp\/v2\/tags?post=567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}