Mysql
 sql >> Base de données >  >> RDS >> Mysql

Problèmes d'utilisation de MS Access comme interface vers une base de données MySQL ?

J'avais une application qui fonctionnait de la même manière :une interface MS Access vers un backend MySQL. C'était tellement pénible que j'ai fini par écrire une interface Win32 à la place. Du haut de ma tête, j'ai rencontré les problèmes suivants :

  • Le développement du lien ODBC semble avoir cessé depuis longtemps. Il existe différentes versions flottantes --- très déroutantes. Le lien ODBC ne prend pas en charge Unicode/UTF8, et je me souviens qu'il y avait également d'autres problèmes (bien que certains puissent être résolus par une configuration minutieuse).
  • Vous souhaitez probablement modifier manuellement votre schéma de base de données pour le rendre compatible avec MS Access. Je vois que vous avez déjà découvert les clés de substitution nécessaires (c'est-à-dire les clés primaires int) :-)
  • N'oubliez pas que vous devrez peut-être utiliser des requêtes directes pour effectuer des manipulations SQL plus sophistiquées de la base de données MySQL.
  • Soyez prudent lorsque vous utilisez beaucoup de VBA, car cela a tendance à corrompre votre fichier frontal. Compresser régulièrement la base de données (en utilisant le menu principal, Outils | Utilitaires de base de données | Compresser et restaurer, ou quelque chose comme ça --- j'utilise la version néerlandaise) et faire des lots de sauvegardes est nécessaire.
  • L'accès a tendance à générer beaucoup de trafic réseau. Comme, des lots vraiment énormes. Je n'ai pas trouvé de solution à cela. L'utilisation d'un moniteur réseau est recommandée si vous voulez garder un œil dessus !
  • Access insiste pour stocker les booléens sous la forme 0/-1. À mon humble avis, 0/+1 a plus de sens, et je pense que c'est également la manière par défaut de faire les choses dans MySQL. Ce n'est pas un gros problème, mais si vos cases à cocher ne fonctionnent pas, vous devez absolument vérifier cela.

Une alternative possible serait de mettre le backend (avec les données) sur un disque partagé. Je me souviens que c'est bien documenté, également dans l'aide. Vous voudrez peut-être jeter un œil à quelques conseils généraux sur la séparation en un frontend et un backend et code qui se reconnecte automatiquement au backend au démarrage ; Je peux également vous envoyer d'autres exemples de code ou les poster ici.

Sinon, vous pouvez également envisager MS SQL. Je n'ai pas d'expérience avec cela, mais je suppose que cela fonctionne beaucoup mieux avec MS Access !