Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problemas ao usar o MS Access como front-end para um back-end de banco de dados MySQL?


Eu tinha um aplicativo que funcionava da mesma forma:um front-end do MS Access para um back-end do MySQL. Foi uma dor tão grande que acabei escrevendo um frontend Win32. Do topo da minha cabeça, encontrei os seguintes problemas:
  • O desenvolvimento do link ODBC parece ter cessado há muito tempo. Existem várias versões diferentes flutuando --- muito confusas. O link ODBC não suporta Unicode/UTF8, e lembro que havia outros problemas com ele também (embora alguns possam ser superados com uma configuração cuidadosa).
  • Você provavelmente deseja ajustar manualmente seu esquema de banco de dados para torná-lo compatível com o MS Access. Vejo que você já descobriu as chaves substitutas necessárias (ou seja, chaves primárias int) :-)
  • Você deve ter em mente que pode ser necessário usar consultas de passagem para fazer manipulações SQL mais sofisticadas do banco de dados MySQL.
  • Tenha cuidado ao usar muito VBA, pois isso tende a corromper seu arquivo front-end. Comprimir regularmente o banco de dados (usando o menu principal, Ferramentas | Utilitários de banco de dados | Compactar e restaurar, ou algo assim --- estou usando a versão holandesa) e fazer lotes de backups é necessário.
  • O acesso tende a causar muito tráfego de rede. Tipo, lotes realmente enormes. Não consegui encontrar uma solução para isso. O uso de um monitor de rede é recomendado se você quiser ficar de olho nisso!
  • O Access insiste em armazenar booleanos como 0/-1. IMHO, 0/+1 faz mais sentido, e acredito que seja a maneira padrão de fazer as coisas no MySQL também. Não é um grande problema, mas se suas caixas de seleção não funcionarem, você definitivamente deve verificar isso.

Uma alternativa possível seria colocar o backend (com os dados) em uma unidade compartilhada. Lembro que isso está bem documentado, também na ajuda. Você pode dar uma olhada em algumas dicas gerais sobre como dividir em um front-end e um back-end e código que se reconecta automaticamente ao back-end na inicialização ; Também posso enviar mais alguns exemplos de código ou publicá-los aqui.

Caso contrário, você também pode querer considerar o MS SQL. Não tenho experiência com isso, mas presumo que funcione em conjunto com o MS Access muito mais bem!