SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.10.2013 19:18:08

NiceToMeetYou
Участник
Зарегистрирован: 12.10.2013
Сообщений: 3

Перенос таблицы из Access в MySQL и подключение ее к Access

Есть база Access 2007. В базе таблица. Хочу эту таблицу перенести в MySQL. В таблице составной ключ. Состоит из счетчика (п1), буквенно(латиница)-циферного кода (п2) и описания (кириллица или латиница) (п3). Перенос в MySQL нормальный (ESF Database Migration Toolkit - Pro). Все отображается корректно. Составной ключ определился корректно (в PhpAdmin Denver нужные поля подчеркнуты). Подключаем эту таблицу обратно к Access через ODCB. И тут засада. В строках, где в п3 пристутсвует кириллица, прописывается во всех полях "#Удалено". Кодировки при переносе менял. Кодироки в драйвере ОДБЦ менял. Ничего не помогает. А составной ключ из кириллицы очень нужен.

Прошу не слать в поиск. Поиск не дал ничего, посольку, вероятно, я не знаю, что искать и как кратко сформулировать проблему. Прошу совета

Неактивен

 

#2 12.10.2013 20:45:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Перенос таблицы из Access в MySQL и подключение ее к Access

Приведите пример на котором можно воспроизвести проблему:
1. структура таблицы, т.е. результат команды show create table `имя таблицы`;
2. тестовые данные в пару строк  в виде команды insert into..
3. как подключаете к аксесу?

Неактивен

 

#3 12.10.2013 21:28:59

NiceToMeetYou
Участник
Зарегистрирован: 12.10.2013
Сообщений: 3

Re: Перенос таблицы из Access в MySQL и подключение ее к Access

Спасибо за внимание к моему вопросу

Первые два Ваших пункта не понял вовсе. В программирование на MySQL не лезу. Все делаю через  оболочку Access и вышеуказанного тулкита. Подсоеднияю к аксесу через Внешние данные - база данных odbc

Мне нужно, чтобы кириллические данных из MySQL нормально функционировали в Access в роли составного Primary key

Неактивен

 

#4 12.10.2013 21:39:59

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Перенос таблицы из Access в MySQL и подключение ее к Access

1. В phpadmine выполните команду: show create table `имя таблицы`;

2. Внешние данные - база данных odbc. А далее импорт данных или связанная таблица? И какая версия драйвера odbc?

Неактивен

 

#5 12.10.2013 21:46:27

NiceToMeetYou
Участник
Зарегистрирован: 12.10.2013
Сообщений: 3

Re: Перенос таблицы из Access в MySQL и подключение ее к Access

1. Не знаю где вводить эту команду.
2. Связанная таблица

Неактивен

 

#6 12.10.2013 21:48:55

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Перенос таблицы из Access в MySQL и подключение ее к Access

в первом посте вы написали, что используете phpadmin. Там есть вкладка, на которой выполняют запросы.

Неактивен

 

#7 01.12.2013 13:32:00

maximus_wand
Участник
Откуда: Мурманск
Зарегистрирован: 16.09.2012
Сообщений: 13

Re: Перенос таблицы из Access в MySQL и подключение ее к Access

Совсем недавно была похожая задача. Нужно было связать Access с MySQL, при этом Access только на чтение

Только у меня были дополнительные условия:
- всё должно быть бесплатным (Access лицензионный уже был на одном ПК)
- сервер под Linux и ODBC не подходит
- база в Access-е периодически обновляется, где-то 1 раз в месяц.
- всё должно быть максимально просто.

В Интернете не нашёл ничего. Пришлось сделать так:
- сделал отдельный файл Access, в котором по умолчанию открывается одна форма с одной кнопкой, где кратко объясняется пользователю, что и как.
- На кнопку назначен код, который спрашивает пользователя показать, где файл с базой, открывает базу-источник и выполняет к ней запросы, сохраняя результаты в один файл Excel.
- У меня было несколько таблиц, поэтому в целевой файл Excel имел несколько листов. По одному листу на каждый результат запроса.
- Затем пользователь открывает раздел загрузки этих отчётов на сайте, выбирает созданный файл Excel и данные импортируются.
- Листы распознавал через PHPExcel.

Можно было бы сделать, чтобы по нажатию кнопки в Access ещё и передача файла скрипту проходила автоматически, но не знаю как.

Есть команда в Access позволяет в одно действие сделать запрос к таблицам сторонней базы Access и сохранить результаты в Excel на разные листы:
DoCmd.RunSQL "SELECT * INTO [название_листа] IN 'путь_к_файлу_Excel' [Excel 12.0 xml;] FROM таблица IN 'путь_к_фалу_Access' WHERE name1='фильтр';"

Если файл Excel не был создан, то он создаётся. Если был - то листы создаются. Если одноимённые листы были - будет ошибка.

Код в Access у меня такой:

 
  ' название организации
    Dim name_org, name_file, path_mdb
    name_org = Forms![Form1].Controls![org].Value

    '
диалог выбора базы с заявками
    Dim dlgOpenFile As Object ' FileDialog
     Set dlgOpenFile = Application.FileDialog(1) '
msoFileDialogFolderPicker
     With dlgOpenFile
       .Filters.Clear
       .Filters.Add "access", "*.mdb"
       .AllowMultiSelect = False
       .Title = "Выберите файл с базой заявок"
       If (.Show = -1) And (.SelectedItems.Count > 0) Then
         path_mdb = .SelectedItems(1)
       End If
     End With
     Set dlgOpenFile = Nothing

    ' путь к файлу отчёта там же где и база
    name_file = Replace(path_mdb, Dir(path_mdb), "") & "\аявки_" & name_org & ".xls"

    '
экспорт заявок 1-го квартала из базы d:\p.mdb в файл d:\1.xls
    DoCmd.RunSQL "SELECT * INTO [1kv] IN '" & name_file & "' [Excel 12.0 xml;] FROM ZZ010104 IN '" & path_mdb & "' WHERE name1='" & name_org & "';"
    ' экспорт заявок 2-го квартала из базы d:\p.mdb в файл d:\1.xls
    DoCmd.RunSQL "SELECT * INTO [2kv] IN '
" & name_file & "' [Excel 12.0 xml;] FROM ZZ010204 IN '" & path_mdb & "' WHERE name1='" & name_org & "';"
    '
экспорт заявок 3-го квартала из базы d:\p.mdb в файл d:\1.xls
    DoCmd.RunSQL "SELECT * INTO [3kv] IN '" & name_file & "' [Excel 12.0 xml;] FROM ZZ010304 IN '" & path_mdb & "' WHERE name1='" & name_org & "';"
    ' экспорт заявок 4-го квартала из базы d:\p.mdb в файл d:\1.xls
    DoCmd.RunSQL "SELECT * INTO [4kv] IN '
" & name_file & "' [Excel 12.0 xml;] FROM ZZ010404 IN '" & path_mdb & "' WHERE name1='" & name_org & "';"

Отредактированно maximus_wand (01.12.2013 13:51:09)


Полярный медведь, это прямоугольный медведь после преобразования координат

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson