Копирование готовой БД из Access в OpenOffice Base

Автор ChetVerG, 6 сентября 2013, 10:29

0 Пользователи и 1 гость просматривают эту тему.

ChetVerG

Здравствуйте!

Есть не большая база данных, составленная в Microsoft Access 2010 x64 битной версии, расширение «.accdb». Но лицензии на пакет Microsoft Office Профессиональный плюс 2010, в котором содержится Access, у нас нет. Лицензия есть только на стандартный пакет. Купить пакет «Про Плюс» мы не можем, использовать кряки и таблетки тоже.

Одним из возможных решений проблемы является реализация нашей БД в OpenOffice Base.

Что сделано:
1)В Microsoft Access 2010 сохранили копию БД в формате .mdb
2)С помощью мастера OpenOffice Base подключились к этой базе, тем самым как бы экспортировали наши таблицы из Аксесса в Опен.
3)Приступили к переносу запросов, путём копирования SQL кода в конструктор запросов. Здесь мы столкнулись с проблемой несовпадения диалекта SQL Microsoft Access с диалектом OpenOffice Base.

Вот пример:
SELECT ФИО.UName, Тип.Type, Деталь.Part, Расход.Quant, Расход.DateTime, Расход.Return
FROM Тип LEFT JOIN (Деталь LEFT JOIN (ФИО RIGHT JOIN Расход ON ФИО.ID = Расход.IdFIO) ON Деталь.ID = Расход.IdPart) ON Тип.ID = Деталь.IdType
WHERE (((ФИО.UName) Is Not Null And (ФИО.UName)<>""))
ORDER BY ФИО.UName;


При попытке выполнить запрос в Опен получаем ошибку:

Состояние SQL: HY000
Код ошибки: 1000

Syntax error in SQL expression

syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE


Пожалуйста подскажите существует ли какой то алгоритм или способ адаптировать Аксесс SQL код под Опен? Или же есть другой,возможно более простой, способ решить нашу проблему, возможно с использованием другого бесплатного ПО.

Yakov

В OpenOffice надо включать имена полей в кавычки

ape

#2
Цитата: ChetVerG от  6 сентября 2013, 09:29Что сделано:1)В Microsoft Access 2010 сохранили копию БД в формате .mdb
Скачайте (адрес не помню) с сайта Майкрософт AccessDatabaseEngine.exe (AccessDatabaseEngine_x64.exe - для 64-битного МСО) и установите пакет. Загрузка доступна и для лицензионных, и для "правильных" ОС. Это позволит подключаться к БД МСО - 2007,2010,2013 без преобразования в MDB формат.

ChetVerG

Всем огромное спасибо за ответы!

Отказался от использования Libre и Open Office Base. Так как получилось добиться обратной совместимости с Microsoft Access 2007, лицензия на который оказывается была.

Порядок действий:
1) Поверх Microsoft Access 2010 установил пакет AccessDatabaseEngine.exe (http://www.microsoft.com/en-us/download/details.aspx?id=13255) за это отдельное спасибо пользователю ape!
2) В Microsoft Access 2010 в разделе "Сохранить и опубликовать" сохранил как в формате совместимости с версией 2002-2003 с расширением .mdb
3) Полностью удалил все пакеты Microsoft Office 2010, в том числе Runtime и Engine.
4) Установил лицензионный Microsoft Office 2007 с Access 2007 на борту.
5) Обновил Office 2007 до SP3, апдейт взял отсюда: http://www.microsoft.com/ru-ru/download/details.aspx?id=27838
6) Открыл сохранённую базу данных в Access 2007. Проверил только работоспособность Главной формы, Расхода и Прихода. Что и требовалось собственно. Всё работает.

Идею обновить до SP3 почерпнул из стати о обратной совместимости между Access 2010 и Access 2007: http://msdn.microsoft.com/ru-ru/office/cc907897.aspx

Тему можно закрыть и переименовать в "Обратная совместимость между Access 2010 и Access 2007" например, но это на усмотрение администрации.
Спасибо! Удачи! :beer:

ape

#4
1. Не забудьте проверить, не унесла ли деинсталляция МСО-2010 пакет AccessDatabaseEngine. Перепроверьте версию: 32 или 64 битовая. Версия пакета должна быть такая же, как у Офиса.
2. Для  совместимости (импорта-экспорта) с ГОСТ (OpenDocumentFormat ver._1.0\1.1) установите дополнительно пакет ODF Add-in for Microsoft Office, распаковав OdfAddInForOfficeSetup-en_4.0.5309.exe и запустив после этого OdfAddInForOfficeSetup.msi.
3. Foxit PDF Reader-6, установленный с плагином расширяет возможности МСО-2007 по импорту\экспорту PDF файлов.
4. Для он-лайн перевода рекомендую также установить службу Microsoft Translator, скачав соответствующий исполняемый файл с оф. сайта Майкрософт.

Удачи, но LibreOffice-4.1 всё-таки лучше на машине иметь - программа МСО не мешает, а в некоторых случаях помогает. Например, только Libre Writer может конвертировать формулы МСО-2003\ХР, иногда встречающиеся в DOCX файлах, в формат МСО-2007\2010. Тема есть на форуме.