Установите драйвер ODBC для MySQL, если у вас его еще нет. Последняя версия доступна здесь: Скачать Connector / ODBC
Создайте DSN (имя источника данных) для вашего сервера MySQL от администратора источника данных ODBC Windows.
Затем в Access 2003 выберите вашу таблицу в окне базы данных и выберите «Файл» -> «Экспорт из Access» в главном меню. В диалоговом окне «Экспорт таблицы» yourtablename «Кому ...» выберите «Базы данных ODBC ()» в раскрывающемся списке «Сохранить как тип» (в нижней части диалогового окна). В следующем диалоговом окне вы можете указать имя, которое MySQL будет использовать для экспортируемой таблицы, и по умолчанию используется имя таблицы Access. После того, как вы нажмете OK, вы получите другое диалоговое окно «Выбор источника данных», где вы можете выбрать свой DSN для MySQL. После того, как вы нажмете OK в этом диалоговом окне, вы, вероятно, получите еще один запрос на ввод имени пользователя и пароля. Поставьте их и нажмите ОК.
Надеюсь, ваша таблица будет перенесена без ошибок. Тем не менее, я никогда не делал эту операцию с MySQL. У меня это работало с передачей ODBC на SQL Server и PostGreSQL. Поэтому я не понимаю, почему это не сработает и с MySQL.
Также я никогда не пытался экспортировать 7 миллионов записей за один раз. Если это задохнется, мы должны найти обходной путь.
Если вы используете Access 2007 вместо 2003, найдите похожую опцию, начиная с раздела «Экспорт» на ленте.
Я предложил этот подход, потому что у меня сложилось впечатление, что этот экспорт будет разовым, поэтому я думаю, что метод экспорта из Access UI будет самым простым. Тем не менее, вы можете выполнить практически ту же операцию с кодом VBA, используя метод DoCmd.TransferDatabase с вашим ODBC DSN.
Еще одна альтернатива - создать совместимую структуру таблиц в MySQL, создать ссылку в Access на таблицу назначения MySQL (снова используя DSN), а затем выполнить «запрос на добавление» из Access:
INSERT INTO link_to_mysql_table (field1, field2, field3, etc)
SELECT field1, field2, field3, etc
FROM access_table;
Подход запроса на добавление может быть полезен в случае, если экспорт блокирует 7 миллионов записей. Вы можете добавить предложение WHERE, чтобы ограничить выходную запись запроса SELECT установленным размером чанка, а затем повторить с другим WHERE, чтобы указать другой чанк.