Miałem aplikację, która działała podobnie:frontend MS Access do backendu MySQL. To był tak ogromny ból, że zamiast tego napisałem frontend dla Win32. Z czubka głowy napotkałem następujące problemy:
- Wydaje się, że rozwój łącza ODBC ustał dawno temu. Istnieje wiele różnych wersji, które krążą wokół --- bardzo zagmatwane. Łącze ODBC nie obsługuje Unicode/UTF8 i pamiętam, że były z nim również inne problemy (chociaż niektóre można rozwiązać przez staranną konfigurację).
- Prawdopodobnie chcesz ręcznie dostosować schemat bazy danych, aby był kompatybilny z MS Access. Widzę, że już dowiedziałeś się o potrzebnych kluczach zastępczych (tj. kluczach podstawowych int) :-)
- Powinieneś pamiętać, że może być konieczne użycie zapytań przekazujących, aby wykonać bardziej wyrafinowane manipulacje SQL w bazie danych MySQL.
- Bądź ostrożny przy używaniu dużej ilości VBA, ponieważ może to spowodować uszkodzenie pliku frontendu. Regularne kompresowanie bazy danych (za pomocą menu głównego, Narzędzia | Narzędzia bazy danych | Kompresuj i przywracaj, lub coś w tym rodzaju --- używam wersji holenderskiej) i robienie dużych kopii zapasowych jest konieczne.
- Dostęp ma tendencję do powodowania dużego ruchu w sieci. Naprawdę ogromne partie. Nie udało mi się znaleźć na to rozwiązania. Korzystanie z monitora sieciowego jest zalecane, jeśli chcesz mieć na to oko!
- Access nalega na przechowywanie wartości logicznych jako 0/-1. IMHO, 0/+1 ma więcej sensu i wierzę, że jest to domyślny sposób robienia rzeczy również w MySQL. Nie jest to duży problem, ale jeśli pola wyboru nie działają, zdecydowanie powinieneś to zaznaczyć.
Jedną z możliwych alternatyw byłoby umieszczenie backendu (z danymi) na dysku współdzielonym. Pamiętam, że jest to dobrze udokumentowane, także w pomocy. Możesz rzucić okiem na niektóre ogólne porady dotyczące podziału na frontend i backend i kod, który automatycznie łączy się ponownie z backendem podczas uruchamiania ; Mogę też wysłać więcej przykładowego kodu lub opublikować go tutaj.
W przeciwnym razie możesz również rozważyć MS SQL. Nie mam z tym doświadczenia, ale zakładam, że współpracuje z MS Access znacznie ładniej!