Помогите преобразовать две БД из Access в LibreOffice, плз.

Автор vaspupkin, 20 ноября 2012, 13:19

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

vaspupkin

Уважаемые знатоки!

Помогите, пожалуйста, неспециалисту.
Необходимо преобразовать две БД из формата Access в LibreOffice. При попытке преобразования LO (Версия 3.6.3.2 (ID сборки: 58f22d5)) надолго, более часа, подвисает.
Вроде как дело не срочное, но оч. хочется поднять престиж открытого ПО в глазах начальника-идиота.
Планируется использование БД в Linux Xubuntu.

Или помогите исправить запросы из Access так, чтобы они работали под ОДБ. С SQL как-то отношения не складываются...  :'(

Спасибо!

[вложение удалено Администратором]

ape

Условия:
1. Windows NT-5,6
2. LibreOffice: 3.5.7 или 3.6.4\4.0.0, вышедшая после 10-го ноября.
На выходе будут таблицы_без_ключей_и_связей и запросы_в_виде_таблиц. Остальное - ручками.
ИМХО: целесообразно поключиться к МС_БД, создать новую ОДБ и перенести туда таблицы, что нудно, долго  и поэтому оч-ч-чень лениво. 

vaspupkin

Спасибо, поправил первоначальную просьбу.

ape

Подробнее.
Подключиться к БД Access можно только в Windows_OS. В Linux\UNIX такой возможности нет - нет драйвера. Файл NewDatabase.odt, создаваемый при подключении к MS_Access.mdb{.accdb}, позволяет Вам только посмотреть на таблицы и запросы в ОС Windows. Поэтому Access_DB нельзя конвертировать в ODB-формат. Поэтому база NewDatabase.odt в Linux таблиц MS_Access.mdb{.accdb} не увидит вовсе. Вам надо создавать My_new_DB.odb, используя:
- возможность копирования таблиц из NewDatabase.odt в My_new_DB.odb
- Microsoft Access для просмотра связей, ключей и т.д. и их восстановления в My_new_DB.odb
Вряд ли кто-нибудь на форуме сделает эту работу за Вас. Ну если только у человека времени - вагон.

vaspupkin

Уважаемый ape!
Спасибо за подсказку!

В исходном сообщении добавил БД под LO.

Проблема с первым же запросом:

SELECT "Дата", "Очередность", "Фамилия", "Имя", "Отчество", "Отделение", "No истории", "Пол", "Возраст", "ГруппаРезус", "Требуется крови", "Гепатит", "Название операции", "Вид анестезии", "Анестезиолог", "Хирург", "Ассистент 1", "Ассистент 2", "Ассистент 3" FROM "Журнал" GROUP BY "Дата", "Очередность", "Фамилия", "Имя", "Отчество", "Отделение", "No истории", "Пол", "Возраст", "ГруппаРезус", "Требуется крови", "Гепатит", "Название операции", "Вид анестезии", "Анестезиолог", "Хирург", "Ассистент 1", "Ассистент 2", "Ассистент 3" HAVING "Дата" = :Дата ORDER BY "Очередность" ASC

После уточнения даты сообщает:

Wrong data type in stement [ _текст запроса_ ]

Необходимо, чтобы в ответе были запрошенные данные на указанную дату, отсортированные по "Очередность".

Поправьте, пожалуйста!

VlhOwn

SELECT * FROM "Журнал" WHERE "Дата" = :Дата ORDER BY "Очередность" ASC

vaspupkin

Уважемый VlhOwn!

Спасибо за совет, запрос заработал.

Не подскажете ли, как избежать создания таблицы Пол_пациента (в смысле М/Ж, а не 0,5 :-)? Есть ли возможность указать несколько (от 2 до 7) заранее предустановленных значений и выбирать их из выпадающего списка без создания таблицы? Такое есть в MS Access:  Источник строк - Список значений.

VlhOwn

Извините, не знаю. Я очень мало знаю про db-компонент. Ответ на предыдущий вопрос - это просто знакомство с SQL, безотносительно платформы.