Openoffice base ошибка вставки новой записи

Ошибка вставки новой записи [РЕШЕНО]

Автор GOYa, 20 мая 2010, 11:14

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

Помогите.

При вводе данных из формы выдает

«Ошибка вставки новой записи»

Прм повторном вводе

«Ошибка вставки новой записи»
Состояние SQL: 23000
Код ошибки: -104

Violation of unique constraint SYS_PK_47: duplicate value(s) for column(s) «ID» in statement [INSERT INTO «Таблица1» ( «ID»,»Test») VALUES ( ?,?)]

Но данные в таблицу вводятся.

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


Очевидно, в поле ID вводятся повторяющиеся значения. Поскольку данное поле у Вас объявлено первичным ключом, его значения должны быть уникальными.


Насколько хватает моих знаний — ругается на то, что вводятся одинаковые значения в поле ID, которое должно быть уникальным, ибо первичный ключ.
Update: Упс, опередили :)
А вообще, первичный ключ-ID лучше делать самозаполняющимся, т.е. выставить Автозначение в «Да».

A Matter of Life and Death


В том то и вопрос, что таблица изначально пустая, а вводится первая запись.

См. прикрепл. файл.


она не пустая.

Update: у Вас форма в режиме «только добавление», поэтому существующие записи не показываются.

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


Цитата: Helen от 20 мая 2010, 11:58
она не пустая.

Update: у Вас форма в режиме «только добавление», поэтому существующие записи не показываются.

Приношу свои извинения за кривизну рук. Но делал все по мануалу:

создал базу
в ней таблицу с двумя полями: ID- самозаполняющийся и name — текстовое поле
мастером прикрутил форму только для ввода данных
и когда ввожу запись в поле name выскакивает эрор из первого поста хотя данные в таблицу таки заносятся. ???

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


Цитата: GOYa от 20 мая 2010, 14:11и когда ввожу запись в поле name выскакивает эрор из первого поста

не могу воспроизвести. Расскажите пошагово, как вносятся данные в форме, начиная с открытия.


Цитата: GOYa от 20 мая 2010, 14:11и когда ввожу запись в поле name выскакивает эрор из первого поста хотя данные в таблицу таки заносятся.

Воспроизвёл. Что интересно — так когда форма создана только для внесения новых данных. Если форма позволяет просматривать и редактировать уже существующие данные, ошибки нет.

A Matter of Life and Death



1. Открыл файл
2. Вызвал форму tab1
3. В поле name ввёл данные
4. Нажал иконку «Следующая запись» на нанели инструментов Навигация формы
5. Ошибка.

A Matter of Life and Death


не могу :)
ООо 3.2.1 RC1.


Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет ???


Цитата: GOYa от 20 мая 2010, 14:59Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет

Видимо, проблему закрыли в Go-OO раньше. Через неделю где-то выйдет 3.2.1 Communinty, проверим ещё разочек там.

A Matter of Life and Death


Цитата: Syzygy от 20 мая 2010, 16:07

Цитата: GOYa от 20 мая 2010, 14:59Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет

Видимо, проблему закрыли в Go-OO раньше. Через неделю где-то выйдет 3.2.1 Communinty, проверим ещё разочек там.

Нет в Go-OO 3.2-13 этот баг есть. Нет в Оо 3.1 от Nowell. Но возможно его нет и в оригинале Оо 3.1


Свобода информации — свобода личности!


Ошибка вставки новой записи [РЕШЕНО]

Автор GOYa, 20 мая 2010, 11:14

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

Помогите.

При вводе данных из формы выдает

«Ошибка вставки новой записи»

Прм повторном вводе

«Ошибка вставки новой записи»
Состояние SQL: 23000
Код ошибки: -104

Violation of unique constraint SYS_PK_47: duplicate value(s) for column(s) «ID» in statement [INSERT INTO «Таблица1» ( «ID»,»Test») VALUES ( ?,?)]

Но данные в таблицу вводятся.

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


Очевидно, в поле ID вводятся повторяющиеся значения. Поскольку данное поле у Вас объявлено первичным ключом, его значения должны быть уникальными.


Насколько хватает моих знаний — ругается на то, что вводятся одинаковые значения в поле ID, которое должно быть уникальным, ибо первичный ключ.
Update: Упс, опередили :)
А вообще, первичный ключ-ID лучше делать самозаполняющимся, т.е. выставить Автозначение в «Да».

A Matter of Life and Death


В том то и вопрос, что таблица изначально пустая, а вводится первая запись.

См. прикрепл. файл.


она не пустая.

Update: у Вас форма в режиме «только добавление», поэтому существующие записи не показываются.

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


Цитата: Helen от 20 мая 2010, 11:58
она не пустая.

Update: у Вас форма в режиме «только добавление», поэтому существующие записи не показываются.

Приношу свои извинения за кривизну рук. Но делал все по мануалу:

создал базу
в ней таблицу с двумя полями: ID- самозаполняющийся и name — текстовое поле
мастером прикрутил форму только для ввода данных
и когда ввожу запись в поле name выскакивает эрор из первого поста хотя данные в таблицу таки заносятся. ???

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


Цитата: GOYa от 20 мая 2010, 14:11и когда ввожу запись в поле name выскакивает эрор из первого поста

не могу воспроизвести. Расскажите пошагово, как вносятся данные в форме, начиная с открытия.


Цитата: GOYa от 20 мая 2010, 14:11и когда ввожу запись в поле name выскакивает эрор из первого поста хотя данные в таблицу таки заносятся.

Воспроизвёл. Что интересно — так когда форма создана только для внесения новых данных. Если форма позволяет просматривать и редактировать уже существующие данные, ошибки нет.

A Matter of Life and Death



1. Открыл файл
2. Вызвал форму tab1
3. В поле name ввёл данные
4. Нажал иконку «Следующая запись» на нанели инструментов Навигация формы
5. Ошибка.

A Matter of Life and Death


не могу :)
ООо 3.2.1 RC1.


Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет ???


Цитата: GOYa от 20 мая 2010, 14:59Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет

Видимо, проблему закрыли в Go-OO раньше. Через неделю где-то выйдет 3.2.1 Communinty, проверим ещё разочек там.

A Matter of Life and Death


Цитата: Syzygy от 20 мая 2010, 16:07

Цитата: GOYa от 20 мая 2010, 14:59Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет

Видимо, проблему закрыли в Go-OO раньше. Через неделю где-то выйдет 3.2.1 Communinty, проверим ещё разочек там.

Нет в Go-OO 3.2-13 этот баг есть. Нет в Оо 3.1 от Nowell. Но возможно его нет и в оригинале Оо 3.1


Свобода информации — свобода личности!


Dear All Need help, im new in this program but im try to learn. i already create one form. but there have problem. when i try to test run. i fill in the form, after that i save error message appears, sorry I’m not good in speaking english, i use goole translate.

SQL Status: 22001
Error code: -124

Value too long in statement [INSERT INTO «PROMOTER PERSONAL PARTICULARS» ( «Birth Date»,»Brand Name»,»CA Handphone»,»CA House Phone»,»CA Postcode»,»CA State»,»Company Name»,»Counter Name»,»Current Address»,»Department Name»,»Employment Status»,»Full Name as per IC / Passport «,»Gender»,»Marital Status»,»NRIC No.»,»PA Postcode»,»PA State»,»Permanent Address») VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]

Green Tick removed. That icon means ‘Solved’ and would reduce the chances of a helpful reply. (TheGurkha, Moderator)

Last edited by thomasjk on Wed Jun 13, 2012 1:38 am, edited 1 time in total.

Reason: Post moved to Base forum

кнопкой внутри поля и из контекстного меню выберите пункт Заменить на > Поле со списком. Опять щелкните правой кнопкой на поле Категория. Выбе-

рите пункт Элемент управления.

Рис. 38. Открытие формы Номера телефонов в режиме разработки

Измените свойства объекта (рис. 39):

Рис. 39. Изменение свойств поля Категория

1.Используя вкладку Общие, найдите внизу параметр Раскрываемый и измените его значение на Да.

2.Используя вкладку Данные, измените следующие настройки:

41

Поле данных: Категория;

Пустая строка – NULL: Да (могут быть пустые значения);

Требуется ввод данных: Нет (напомним, что поле Категория не являлось обязательным для таблицы Номера телефонов);

Тип содержимого списка: Таблица;

Содержимое списка: Категории абонентов.

Сохраните форму и закройте окно конструктора форм. В главном окне OpenOffice Base дважды щелкните по имени формы Номера телефонов, для того чтобы открыть ее в режиме ввода и просмотра данных. Заполните все поля первой записи. При этом при переходе к полю Категория появится список возможных значений категорий абонентов телефонного справочника из таблицы Категории абонентов (рис. 40), чего мы и добивались. Причем необходимо отметить, что если бы таблица Категории абонентов содержала более одного поля, то данные для поля со списком выбирались бы все равно из первого поля!

Рис. 40. Ввод данных в форму Номера телефонов

3.4. Ввод данных с помощью формы

Итак, поля на формах используются для ввода данных в базу данных. С их помощью мы вводим все данные, относящиеся к каждому объекту базы данных,

42

т.е. номеру телефона, который хотим сохранить в нашей базе данных.

Каждая запись (то, что раньше являлось отдельной строкой таблицы) теперь представляет из себя как бы отдельную карточку. Считается, что вводить данные удобнее именно в таком режиме.

Перемещаться между полями можно при помощи клавиши Tab, или клавиш управления курсором. При нажатии клавиши Tab после ввода данных о номере телефона в последнее поле формы, все поля очищаются за исключением, возможно, полей со значением Автозначение. Это значит, что мы завершили создание первой записи на форме (или таблице) номера телефонов. Заполнив запись перейти к новой записи (карточке) можно нажав клавишу Enter. Каждый раз, когда мы заполняем полями, мы добавляем очередную запись. Например, запись 2 на рис. 41.

Рис. 41. Запись в форме номера телефонов

В нижней левой части формы есть слово Запись. После него расположена навигационная панель с информацией о номере обрабатываемой записи и коли-

43

честве записей в таблице. В нашем примере, показана запись 2 из 2 имеющихся. Справа от этих цифр имеются дополнительные иконки, которые позволяют перемещаться от одной записи к другой (стрелки), добавлять новые записи, удалять записи и выполнять другие действия (рис. 42).

Рис. 42. Навигационная панель для управления записями

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

Ввод данных с помощью других форм (Абоненты, например) осуществляется аналогично. При этом пустыми (незаполненными) могут остаться только те поля, у которых в свойствах указано для параметра Обязательное — Нет.

Переход к последнему полу формы автоматически сохраняет все данные для этой записи и начинает обработку следующей записи. Если остались незаполненные обязательные поля, то Вы увидите следующее окно (рис. 43).

Рис. 43. Ошибка вставки новой записи

При вводе данных поля Фамилия таблиц Номера телефонов и Абонен-

44

ты могут не обязательно принимать набор одних и тех же значений. В итоге, содержимое таблиц Номера телефонов и Абоненты должно выглядеть примерно как на рис. 44. Видно, что сортировка записей выполняется по одному из полей, чаще всего по полю Первичного ключа.

Рис. 44. Таблицы Номера телефонов и Абоненты

3.5. Сохранение формы в формате OpenOffice Writer

Разнесение файловой базы данных и формы, отображающей данные, может выглядеть удобным для конечного пользователя базы. Это повышает безопасность и ускоряет загрузку. Процесс разнесения прост: форма сохраняется как отдельный файл OO Writer, а потом удаляется из базы данных.

Сохранение формы создаст отдельный текстовой файл, где будут находится поля, диалоги и т.д. Для этого проделаем следующее:

Открываем необходимую форму нашей базы данных (пусть это будет главная форма Номера телефонов), выбираем Файл > Сохранить копию как… и

сохраняем её в нужный нам каталог (удобнее положить в тот же каталог, где лежит база данных). Для сохранения используем имя Номера телефонов, а расширение программа подставит сама.

Закрываем открытую форму и ОО Base. Открываем только что созданный документ Номера телефонов.odt. Все поля пока пустые. Настраиваем работоспособность формы. Активируем режим разработки и отображаем панель Ди-

зайн формы. Откройте окно Свойства формы. Для параметра Источник

45

данных выбираем нашу базу данных Телефонный справочник. Проверьте параметры Тип содержимого источника и Содержимое (рис. 45). Сохраня-

ем форму. Проверяем – форма работает.

Рис. 45. Выбор источника данных для формы

4. Доступ к другим источникам данных

В качестве продвинутых решений Base предлагает поддержку внешних совместимых обработчиков баз данных, таких как MySQL, являющихся идеальной системой для создания быстрых многопользовательских баз данных с поддержкой работы по сети. Помимо совместимых обработчиков, Base может использовать другие типы внешних источников данных, включая Microsoft Access, адресные книги, электронные таблицы и даже простые текстовые файлы.

OpenOffice.org позволяет получить доступ к источникам данных и связать их с любым документом OO. Например, связывая письмо с внешним документом, содержащим фамилии и адреса получателей, можно для каждого адреса сгенерировать свою копию этого письма.

Для регистрации источника данных, выберите пункт меню Файл > Соз-

дать > Базу данных, затем выберите Подключиться к существующей базе данных и определите тип источника данных, с которым необходимо соединиться. После этого мастер выберет нужный источник данных. Типы источников данных, к которым можно получить доступ из OpenOffice Base, представлены на рис. 46.

46

Выберите тип базы данных из выпадающего списка и щелкните по кнопке Далее. Щелкните по кнопке Просмотр и выберите каталог, содержащий базу данных или источник данных, и щелкните по кнопке Далее. Согласитесь с ус-

тановками по умолчанию: Да, зарегистрировать мне базу данных и Открыть базу данных для редактирования. Щелкните по кнопке Готово. Назовите и сохраните базу данных в выбранном каталоге в формате OpenOffice Base. Импортируя данные из баз данных вам будет предложено создать форму, исполь-

зуя Мастер для создания форм.

Если электронная таблица защищена паролем, установите флажок Требуется пароль. Если электронная таблица требует ввода имени пользователя, введите его. Если требуется также ввод пароля, установите его флажок.

Рис. 46. Подключение к внешней базе данных (источнику данных)

Доступ к некоторым типам баз данных позволяет вводить и изменять за-

47

писи в этих базах данных. Доступ к электронным таблицам, однако, не позволяет делать в них изменения.

4.1. Регистрация баз данных в OpenOffice

Это довольно простая процедура. В меню Сервис > Параметры > База данных OpenOffice.org выберите раздел Базы данных. В списке Зарегистри-

рованные базы данных будут перечислены эти базы данных (рис. 47). Ниже этого списка находятся три кнопки: Создать…, Удалить, Правка… Для регистрации базы данных, созданной в OpenOffice.org щелкните по кнопке Создать. Далее с помощью кнопки Обзор найдите нужную базу данных. Убедитесь в правильности зарегистрированного названия и щелкните по кнопке OK.

Рис. 47. Зарегистрированные базы данных

4.2. Использование источников данных

Зарегистрировав источник данных, такой как электронная таблица, текстовый документ, внешняя база данных или другой допустимый источник данных, вы можете использовать его в других модулях OpenOffice.org, включая Writer и Calc, выбрав пункт Вид > Источники данных или нажав клавишу F4.

48

Просмотр источников данных

Откройте документ в Writer или в Calc. Чтобы просмотреть доступные источники данных, нажмите F4 или выберите Вид > Источники данных из выпадающего меню. Появится список зарегистрированных баз данных, включая Bibliography и любые зарегистрированные базы данных.

Чтобы просмотреть каждую базу данных, щелкните на символе + слева от имени базы данных (рис. 48). Будут отображены строки Таблицы и Запросы. Щелкните по + слева от раздела Таблицы, чтобы увидеть созданные таблицы. Теперь щелкните по имени таблицы, чтобы увидеть все ее записи.

Рис. 48. База данных Телефонный справочник, открытая в Writer

Щелкните правой кнопкой по иконке базы данных, таблице или запросе и выберите пункт Редактирование базы данных. Далее вы можете редактировать, добавлять и удалять таблицы, запросы, формы и отчеты.

Использование источников данных в документах

49

Чтобы вставить поле из таблицы в документ (например, в электронную таблицу Calc или документ Writer), щелкните на имени поля (серый прямоугольник – в заголовке столбцов) и, удерживая нажатой левую кнопку мыши, перетащите поле в документ. В документе Writer, оно появится как поле <ИМЯ> (где ИМЯ это название поля, которое вы перетащили). В Calc оно появится в виде текстового окна.

Часто источник данных используется для рассылки писем. Выбрав Сер-

вис > Рассылка писем или щелкнув на иконке Циркулярное письмо (иконка с небольшим листом бумаги и конвертом на панели Данные таблиц), вы загрузите мастер Рассылка писем OpenOffice.org, который управляет созданием документа для письма.

Редактирование источников данных

Некоторые внешние источники данных (кроме электронных таблиц) можно редактировать с помощью диалогового окна панели Просмотр источника данных. Записи можно редактировать, добавить или удалить.

Данные отображаются в правой части экрана. Щелкните по полю, которое надо отредактировать. Ниже записей имеется пять небольших кнопок. Первые четыре кнопки служат для навигации по записям или для перемещения в начало или конец таблицы. Пятая кнопка, с небольшой звездочкой , служит для добавления новой записи (рис. 48).

Для удаления записи, щелкните правой кнопкой по серому полю рядом с нужной записью чтобы выделить всю строку, а затем выберите Удалить строки для удаления выделенной строки.

4.3. Импорт данных в таблицы базы данных

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

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Что представляет собой общая ошибка ввода вывода в OpenOffice, и как ее исправить? С этим вопросом сталкиваются пользователи, кто впервые испытал определенные проблемы, при работе с этим вариантом программного обеспечения. На практике речь идет про аппаратный сбой, вызванный той или иной неполадкой в работе системы. Так как столкнуться с этой бедой может каждый, но далеко не все знают, как справляться в этой ситуации, здесь предстоит наглядно разобрать все наиболее важные моменты.

Содержание

  1. Распространенные ошибки при работе в OpenOffice: причины и способы устранения
  2. Общая ошибка ввода – вывода
  3. Невозможно записать файл
  4. Ошибка при сохранении документа – доступ запрещен
  5. Ошибка нет пары
  6. Отсутствует оператор
  7. Отсутствует переменная
  8. Циклическая ссылка

Перед тем как углубляться в подробности, предварительно предстоит обратить внимание на общие вопросы, которые могут возникать у юзеров при работе с этим программным обеспечением. На практике, чаще всего появляются следующие моменты, в которых не так просто разобраться:

  1. Общая ошибка ввода или вывода значений в приложении.
  2. Невозможно записать файл на жесткий диск или другой носитель.
  3. Запрет доступа для сохранения документа в память устройства.
  4. Сбой, при отсутствии корректной и актуальной пары.
  5. Отсутствует оператор, и как следствие подключение.
  6. Нет переменной и корректного значения для расчета.
  7. Циклическая или неправильно составленная ссылка на ресурс.

В настоящее время, это довольно распространенные варианты ошибок, а также соответствующие вопросы, с которыми часто сталкиваются неопытные пользователи, кто еще не успел освоиться и привыкнуть к работе с этим современным и многофункциональным программным обеспечением.

Важно! Не стоит забывать о том, что здесь были представлены лишь простейшие неполадки в работе приложения, которые можно устранить самостоятельно, если четко и последовательно выполнять конкретные действия.

Распространенные ошибки при работе

Общая ошибка ввода – вывода

Это достаточно распространенный аппаратный сбой, который символизирует о том, что файл был поврежден вследствие его повреждения или заражения вредоносным программным обеспечением. В данном случае вы можете попытаться запустить саму утилиту, и при помощи ее инструментов открыть этот файл, однако результат не гарантирован. В остальном, такие ошибки не подлежат исправлению, если только у вас не получится вылечить каталог при помощи антивирусной утилиты, если он в действительности оказался пораженным вирусом.

Невозможно записать файл

С такой ошибкой приходится сталкиваться в том случае, когда пользователь задает неверное или недопустимое имя для файла, которое не может быть ему присвоено системой по объективным причинам. В данном случае, вы можете корректно переименовать название, либо поменять формат сохраняемого объекта. Как правило, этих манипуляций вполне достаточно, чтобы впоследствии прекратилось появление этого аппаратного сбоя, выдаваемого программным обеспечением OpenOffice при попытке записать файл на носитель.

Ошибка при сохранении документа – доступ запрещен

Такой сбой появляется в ситуации, когда у вашей учетной записи недостаточно прав для сохранения документа в том или ином пространстве жесткого диска. Имеется вероятность, что администратор ограничил места на устройстве, к которым пользователь имеет прямой доступ. Именно поэтому, чтобы впоследствии не происходил аппаратный сбой, предстоит сохранять документ там, где вы можете это сделать. Иными словами, в утилите необходимо прописать корректный путь для записи.

Ошибка нет пары

В данном случае речь идет про аппаратную ошибку при вводе значений. Не стоит забывать о том, что у некоторых знаков в обязательном порядке должна быть пара, в противном случае система распознает сбой, о чем незамедлительно вас уведомит. Именно поэтому, для устранения проблемы, необходимо лишь проверить корректность указанных значений, присутствует вероятность, что вы где-то упустили скобку, либо иной парный знак, чего делать нельзя, иначе теряется смысл, а непосредственный расчет становится невозможным.

Отсутствует оператор

Здесь речь идет о моментах, когда пользователь упускает определенный важный знак при построении математического выражения. Иными словами, если вы построили алгоритм «=2(1+3)», то система автоматически выдаст вам уведомление, что отсутствует оператор, или простым языком вспомогательный знак при построении выражения. Здесь также необходимо проверить корректность ввода всех символов, чтобы впоследствии исключить возможность повторного проявления ошибки. В данном случае на указанном примере должно измениться следующее: «=2*(1+3)». Только в этой ситуации система распознает и примет параметры.

Отсутствует переменная

В данном случае речь идет про символ, который по какой-либо причине пропустил пользователь в момент построения выражения. Иными словами, два знака не могут идти друг за другом, так как теряется смысл математического построения, о чем и уведомляет вас утилита. Рассматривая на примере, можно выделить такой момент, как «“=2*+3». Разумеется, такой ввод данных можно назвать некорректным, а программа в свою очередь уведомляет вас об этом, ссылаясь на то, что, по всей видимости, вы пропустили значение, либо по ошибке поставили два знака одновременно.

Циклическая ссылка

У этой ошибки имеется внутренний код 522, что свидетельствует об отсутствии цикла. Иными словами, формула начинает ссылаться на себя, и говорить о том, что не были заданы необходимые параметры. Чтобы разрешить этот аппаратный сбой, вам потребуется перейти в раздел Сервис, выбрать параметры, и после применить корректные значения. Это позволит впоследствии не допустить появления подобной помарки и соответствующих трудностей при последующем построении. Следует обязательно сохранить все внесенные изменения.

Важно! Все ошибки имеют определенный внутренний код, используя который вы сможете без особых затруднений найти подробное описание, а кроме того методики разрешения возникших проблем.

При работе с таким программным обеспечением как Опен Офис, могут возникать различные трудности, которые нередко отображаются в виде ошибок во всплывающем окне. На практике, не стоит паниковать раньше времени, так как к ним очень часто приводят неправильные действия пользователя. На практике, все что здесь требуется, это найти соответствующее описание проблемы. А после руководствуясь этими моментами внести определенные изменения, что с высокой долей вероятности поможет при разрешении проблемы.

Невозможно сохранить

Автор HuanCarlos, 9 февраля 2014, 15:24

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

При попытке сохранить файл OO Calc (v4.0.1.) возникает сообщение:
Ошибка при сохранении документа ИМЯДОКУМЕНТА:
Ошибка записи.
Невозможно записать файл.
Перезагрузка система не помогла, блокирующие дескрипторы не найдены. Другие файлы сохраняются нормально. В чем может быть проблема?


Проблемы только с одним файлом? Запись на локальный компьютер или сетевой ресурс? Какая ОС?
Файл был создан в этой версии офиса или более ранней?


Проблема с одним файлом. Запись на жесткий диск, WIN7. Файл создавался в той же версии OO. Проблема носит не постоянный характер, в течении определенного времени все в порядке, затем перестает сохранятся. При чем я этот момент предугадать не могу и соответственно теряю все изменения.



Периодически кто-то жалуется на ошибку невозможности сохранения. Происходит только с файлами ods. Причину пока не нашли.
В какой-то версии офиса проблема возникает чаще, в какой-то реже. Многие пользователи никогда не сталкивались с такой ошибкой.
Как правило, ошибки сохранения возникают с файлами, которые были созданы ранее, затем открыты в другой день. В файле используется различное форматирование в ячейках или автофильтр.

На следующий день ошибка с тем же файлом может не повториться.

Чтобы сохранить изменения, пользователи сохраняли файл в другом формате (xls), переоткрывали файл и затем перезаписывали ods.

Это похоже на описание Вашей ошибки?


Добрый день Та же ошибка надоела
Ошибка при сохранении документа : Имя файла
Ошибка записи
Не возможно записать файл
Возможно уже есть какое-то решение ??
Win XP SP3     Ooo 4.0.1
как узнать в какой версии создавался документ не знаю — не помню
проблемный файл я присоединяю но тот который сохраняется т к проблемный я же не могу прикрепить — он ведь не сохраняется 

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




Цитата: Helen от 16 февраля 2014, 17:30
Периодически кто-то жалуется на ошибку невозможности сохранения. Происходит только с файлами ods. Причину пока не нашли.
В какой-то версии офиса проблема возникает чаще, в какой-то реже. Многие пользователи никогда не сталкивались с такой ошибкой.
Как правило, ошибки сохранения возникают с файлами, которые были созданы ранее, затем открыты в другой день. В файле используется различное форматирование в ячейках или автофильтр.

На следующий день ошибка с тем же файлом может не повториться.

Чтобы сохранить изменения, пользователи сохраняли файл в другом формате (xls), переоткрывали файл и затем перезаписывали ods.

Это похоже на описание Вашей ошибки?

Да, именно так происоходит у меня… Решения все еще нет?


Цитата: bitum от 30 апреля 2014, 12:27
Вот еще видео об этой проблеме
https://www.youtube.com/watch?v=OgjQKIJIDaA&feature=youtu.be&hd=1
вообще ни одна кнопка не реагирует

Сталкивался с подобным, если файл долго висел открытым, но окно было свернуто… визуально, можно сказать, что происходит бесконечный цикл автосохранений с очень небольшим интервалом… мне после некоторого ожидания удавалось сохранить такой файл. Т.е. нужно сделать окно активным, и оставить его «в покое» (точно не помню, но может минут 15-30), после чего интервал между автосохранениями становится, вроде как, больше. Соответственно можно уже попытаться успеть нажать кнопку «Сохранить» или «Сохранить как», у меня получалось. Естественно, эти мучения стоят того, если файл действительно нужен. Как-то так, может кому поможет.
PS Предполагаю, что пока окно свернуто, автосохранение откладывается… а при активации окна все эти, так сказать, накопленные автосохранения начинают выполняться. Имхо.



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

Давно уже сталкиваюсь с этой проблемой, но в последнее время что-то уже больно часто и больно  :'( :'( :'(

Версия программы OpenOffice 4.1.1 (но и в 4.0.1 то же было) .
ОС Win7
Так же в файле есть именованные диапазоны и при пересохранеии в формат xls, а затем обратно — все диапазоны становятся недоступными для редактирования — их невозможно вызвать через «задать диапазон».

Занимается ли кто-нибудь ее исправлением или теперь у разработчиков другие задачи и им не до ошибок?   ???
Если на данный момент спасение от этой ошибки?
Есть ли эта ошибка в LibreOffice? (т. е. можно ли просто установить LO и проблема исчезнет?)


Цитата: Arcan от  1 февраля 2015, 20:48Есть ли эта ошибка в LibreOffice?

C диапазонами — есть ошибка. На  Win7 они как бы живут своей жизнью — отдельной — LibO 4.4.0 видит только свои, а XL-2013 — видит все, но работает только со своими. Увы нам… :(

«Ctrl+S» — достойное завершение ваших гениальных мыслей!.. ;)


Еще заметил, что когда возникает эта ошибка сохранения — временный файл, который создается при открытии документа Calc (это который .~lock.xxx.ods) исчезает. уж не знаю связано ли это как-то с самой ошибкой

Так же, как уже было написано, ошибка сохранения почти наверняка появляется, если добавить автофильтр в таблицу, сохранить, а затем вновь открыть файл. С именованными диапазонами — возникала раньше не часто.

Вообщем только начинаешь использовать все интересные возможности электронной таблицы (по полной так сказать) — тут такой облом :(


Что-то похожее было: расшареная таблица, все работают в LO 4.1.2, а один в LO 4.2.xx — он и гадил. Вычислил по размеру content.xml (это в контейнере .ods), у 4.2.хх он больше, чем у 4.1.1 и структура ячеек не совсем совпадает.


Уже много лет одна фигня меня бесит в ОпенОфисе.
У меня есть файл с реестром закупок в файле «Снабжение.ods», который постоянно использую. Т.е. открыл утром и постоянно в нем работаю. Но часто появляется ошибка при записи файла после внесения изменения в файл:

«Ошибка при сохранении документа Снабжение:
Ошибка записи.
Невозможно записать файл.»

Я закрываю этот файл и сразу же его открываю. И после этого вообще не вознкиает никаких ошибок. Т.е. эта ошибка появляется после первого открытия файла. Не помогло даже внести в свойствах файла на вкладке «Безопасность» полный доступ всем учеткам и даже пробовал добавить учетку «Все» с полным доступом. Все равно, почти всегда возникает ошибка при первой записи в файл.
Такая фигня только с этим конкретным файлом. Пробовал открыть его как копию, пересохранить, сбросить права доступа к этмоу файлу
Скажите, кто-нить знает, как это исправить?!

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

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

Ошибка при сохранении документа (Calc — OpenOffice.org 2.x)

Модератор: /dev/random

Аватара пользователя

ivul

Сообщения: 98
ОС: Debian/Ubuntu Linux
Контактная информация:

Ошибка при сохранении документа

Приветствую!
При попытке сохранить электронную таблицу в «родном» формате .ods, выскакивает ошибка

Ошибка при сохранении документа :
Ошибка записи.
Невозможно записать файл.

В формате xls этот же файл сохраняется нормально.

Наблюдается в OOo 2.2, 2.2.1, 2.3.0, 2.3.1

В чем может быть причина?

Аватара пользователя

ivul

Сообщения: 98
ОС: Debian/Ubuntu Linux
Контактная информация:

Re: Ошибка при сохранении документа

Сообщение

ivul » 14.12.2007 16:36

Инфра-Ресурс.

Кстати, заметил странную особенность. Если открыть несохраняемый файл в оригинальной версии OOo под Win, то он сохраняется в ods. Во все других — нет.

baleks

Сообщения: 4
ОС: Debian GNU/Linux

Re: Ошибка при сохранении документа

Сообщение

baleks » 30.11.2008 22:30

ivul писал(а): ↑

13.12.2007 15:30

Приветствую!
При попытке сохранить электронную таблицу в «родном» формате .ods, выскакивает ошибка

Ошибка при сохранении документа :
Ошибка записи.
Невозможно записать файл.

В формате xls этот же файл сохраняется нормально.

Наблюдается в OOo 2.2, 2.2.1, 2.3.0, 2.3.1

В чем может быть причина?

Такая же ошибка !!!
Причем наблюдалась как в OpenOffice 2.чтототам под виндой, так и в OO v3 под линукс убунту
Появляется стихийно (после массового редактирования строк/столбцов)
Приходится открывать файл и вносить внесенные изменения заново (((((

Уже много лет одна фигня меня бесит в ОпенОфисе.
У меня есть файл с реестром закупок в файле «Снабжение.ods», который постоянно использую. Т.е. открыл утром и постоянно в нем работаю. Но часто появляется ошибка при записи файла после внесения изменения в файл:

Цитата:

«Ошибка при сохранении документа Снабжение:
Ошибка записи.
Невозможно записать файл.»

Я закрываю этот файл и сразу же его открываю. И после этого вообще не вознкиает никаких ошибок. Т.е. эта ошибка появляется после первого открытия файла. Не помогло даже внести в свойствах файла на вкладке «Безопасность» полный доступ всем учеткам и даже пробовал добавить учетку «Все» с полным доступом. Все равно, почти всегда возникает ошибка при первой записи в файл.
Такая фигня только с этим конкретным файлом. Пробовал открыть его как копию, пересохранить, сбросить права доступа к этмоу файлу
Скажите, кто-нить знает, как это исправить?!

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

//Подключение к серверу автоматизации OpenOffice

Попытка

   OpenOffice = Новый COMОбъект(«com.sun.star.ServiceManager»);

   

   scr = Новый COMОбъект(«MSScriptControl.ScriptControl»);

   scr.language = «javascript»;

   

   scr.eval(«MassivParametrov = new Array()»);

   MassivParametrov = scr.eval(«MassivParametrov»);

   
   scr.AddObject(«OpenOffice», OpenOffice);

   

   scr.eval(«MassivParametrov[0]=OpenOffice.Bridge_GetStruct(‘com.sun.star.beans.PropertyValue’)»);

   scr.eval(«MassivParametrov[0].Name=’Hidden’»);

   scr.eval(«MassivParametrov[0].Value=true»);

   
   scr.eval(«MassivParametrovSave = new Array()»);

   

   MassivParametrovSave = scr.eval(«MassivParametrovSave»);

   scr.eval(«MassivParametrovSave[0]=OpenOffice.Bridge_GetStruct(‘com.sun.star.beans.PropertyValue’)»);

   scr.eval(«MassivParametrovSave[0].Name=’Overwrite’»);

   scr.eval(«MassivParametrovSave[0].Value=true»);

   
   Соединение = OpenOffice.createInstance(«com.sun.star.frame.Desktop»);

   

   
Исключение

   Сообщить(ОписаниеОшибки() + Символы.ПС + «программа OpenOffice не установлена на данном компьютере!»);        

КонецПопытки;

Если МодульOpenOffice = Неопределено Тогда

            МодульOpenOffice = Обработки.МодульOpenOffice.Создать();

    КонецЕсли;

   

   
   sUrl = МодульOpenOffice.URLИзИмениФайла(мВыбФайл);

   Файл = МодульOpenOffice.Соединение.LoadComponentFromURL(sUrl, «_blank», 0, МодульOpenOffice.MassivParametrov);

   

   
   КолЛистов = Файл.GetSheets().GetCount();

       Попытка        

           ТекущийЛист = Файл.sheets.getByIndex(0);

           ReplaceDescriptor     = ТекущийЛист.createReplaceDescriptor();

           ReplaceDescriptor.SearchString = «is»;

           ReplaceDescriptor.ReplaceString = «was»;

       Исключение

           Сообщить(ОписаниеОшибки());

       КонецПопытки;

    Файл.storeAsURL(sUrl, МодульOpenOffice.MassivParametrovSave);

В ходе установки приложения этот процесс может быть прерван сообщением «Ошибка 1310. Ошибка записи в файл». Обычно она появляется при установке Microsoft Office, Adobe и прочих программных продуктов.

Содержание

  • 1 Чем вызвана ошибка?
  • 2 Очистка оставшихся файлов предыдущих версий
  • 3 Перерегистрация установщика Windows
  • 4 Предоставление разрешений на папку

Чем вызвана ошибка?

Процесс установки может быть прерван сообщением с кодом 1310 по следующим причинам:

  1. В системе присутствуют оставшиеся файлы и записи в реестре предыдущей версии приложения.
  2. У текущей учетной записи отсутствуют разрешения на папку, в которую устанавливается приложение.
  3. Сбой вызван установщиком Windows (Msiexec.exe). Требуется его перерегистрация.

Очистка оставшихся файлов предыдущих версий

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

Если столкнулись с этой проблемой при инсталляции Microsoft Office, можно использовать специальную утилиту, которая удаляет оставшиеся следы ранее установленных версий. Перейдите на сайт Майкрософта по запросу «средство поддержки удаления office» и загрузите нажатием на указанную кнопку. После запустите утилиту и следуйте инструкциям на экране.

Для удаления установленных программ откройте раздел «Программы и компоненты» командой appwiz.cpl, запущенной из окна «Выполнить» (Win + R).

В списке щелкните правой кнопкой мыши на каждой версии той же программы, которую пытаетесь установить, и нажмите на «Удалить».

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

Перерегистрация установщика Windows

Многие приложения используют технологию установщика Windows, который требуется для инсталляции пакетов MSI и MSP. Пользователям, которые столкнулись с ошибку 1310 при инсталляции пакета Microsoft Office, удалось решить проблему путем перерегистрации msiexec.exe.

Наберите в окне «Выполнить» (Win + R) команду msiexec /unregister и подтвердите ее запуск на Enter, чтобы отменить регистрацию процесса.

После снова нажмите на Win + R и выполните команду msiexec /regserver, чтобы повторно зарегистрировать процесс.

Предоставление разрешений на папку

Если при возникновении ошибки 1310 в сообщении указывается проверить доступ к каталогу установки, то, скорее всего, в текущей учетной записи пользователя нет на него разрешений. Эта проблема решается путем предоставления полного доступа группе администраторов и пользователей в окне свойств каталога.

Откройте проводник и перейдите к папке, в которую пытаетесь установить программу. Щелкните на ней правой кнопкой мыши и выберите Свойства.

Если не можете найти папку, указанную в сообщении, скорее всего, она скрыта по умолчанию. В этом случае откройте окно «Выполнить» и наберите команду «control». В меню Сервис перейдите в Параметры папок – Вид. Отметьте флажком опцию «Показывать скрытые файлы, каталоги и диски». Затем примените изменения.

В свойствах перейдите на вкладку Безопасность и щелкните «Изменить».

Выберите группу Администратора и проверьте, что в поле разрешений установлен флажок на полном контроле.

Затем выберите группу пользователей и предоставьте им полный контроль. Нажмите на «Применить» для сохранения изменений.

Если программа устанавливается в несколько папок, повторите это действие для каждой из них.

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

Может ли кто-нибудь помочь мне с созданием формы Libreoffice Base? У меня есть следующие таблицы:

Таблицы И я пытаюсь добавить форму для ввода новой записи RESOURCES со следующими полями: [RESOURCE_NAME], [CURRENCY_NAME] и [AMOUNT]. Но после 10+ попыток у меня ничего не вышло. Я попытался добавить его через мастер, выбрав РЕСУРСЫ в качестве основной формы и ВАЛЮТЫ в качестве подчиненной формы и наоборот. Я пробовал ПРОСМОТРЫ и формы на их основе. Эти попытки только дали мне или не дали возможности ввести новую запись, либо создание новой ВАЛЮТЫ.

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

Кто-нибудь может дать инструкцию как это сделать, пожалуйста?

Спасибо.

1 ответ

Лучший ответ

Для этого вам не нужна подчиненная форма — просто создайте документ формы с РЕСУРСАМИ в качестве основной формы (только формы).

Для ввода валюты вам понадобится список. Список имеет два поля: поле отображения и поле, которое сохраняется в таблице. Вы настроите его для отображения CURRENCY_NAME и хранения CURRENCY_ID.

Когда вы создаете список, всплывающий мастер может дать вам то, что вы хотите. Если мастер не справляется:

  • Убедитесь, что документ формы открыт в режиме разработки: на панели инструментов «Элементы управления формой» крайний левый / верхний значок карандаша с треугольником должен быть нажат. Если этот значок неактивен, закройте документ, щелкните его имя правой кнопкой мыши и выберите «Редактировать».
  • Щелкните правой кнопкой мыши по списку и выберите «Управление»; это откроет окно свойств
  • На вкладке «Данные» измените «Тип содержимого списка» на «Sql».
  • В поле «Содержание списка» введите SELECT "CURRENCY_NAME", "CURRENCY_ID" FROM "CURRENCIES" ORDER BY "CURRENCY_NAME"
  • По умолчанию для связанного поля должно быть установлено 1. Если не 1, измените его на 1.
  • Закройте окно свойств и сохраните форму. Теперь он должен работать так, как вы хотите.

Если вам нужен список внутри таблицы: после создания таблицы с формой в режиме редактирования щелкните правой кнопкой мыши имя столбца, которое вы хотите изменить, и выберите «Заменить на», а затем «Список».

Отредактировано, чтобы включить комментарий OP о том, что связанное поле должно быть 1


2

Lyrl
2 Дек 2015 в 19:08

Ошибка вставки новой записи [РЕШЕНО]

Автор GOYa, 20 мая 2010, 11:14

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

Помогите.

При вводе данных из формы выдает

«Ошибка вставки новой записи»

Прм повторном вводе

«Ошибка вставки новой записи»
Состояние SQL: 23000
Код ошибки: -104

Violation of unique constraint SYS_PK_47: duplicate value(s) for column(s) «ID» in statement [INSERT INTO «Таблица1» ( «ID»,»Test») VALUES ( ?,?)]

Но данные в таблицу вводятся.

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


Очевидно, в поле ID вводятся повторяющиеся значения. Поскольку данное поле у Вас объявлено первичным ключом, его значения должны быть уникальными.


Насколько хватает моих знаний — ругается на то, что вводятся одинаковые значения в поле ID, которое должно быть уникальным, ибо первичный ключ.
Update: Упс, опередили :)
А вообще, первичный ключ-ID лучше делать самозаполняющимся, т.е. выставить Автозначение в «Да».

A Matter of Life and Death


В том то и вопрос, что таблица изначально пустая, а вводится первая запись.

См. прикрепл. файл.


она не пустая.

Update: у Вас форма в режиме «только добавление», поэтому существующие записи не показываются.

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


Цитата: Helen от 20 мая 2010, 11:58
она не пустая.

Update: у Вас форма в режиме «только добавление», поэтому существующие записи не показываются.

Приношу свои извинения за кривизну рук. Но делал все по мануалу:

создал базу
в ней таблицу с двумя полями: ID- самозаполняющийся и name — текстовое поле
мастером прикрутил форму только для ввода данных
и когда ввожу запись в поле name выскакивает эрор из первого поста хотя данные в таблицу таки заносятся. ???

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


Цитата: GOYa от 20 мая 2010, 14:11и когда ввожу запись в поле name выскакивает эрор из первого поста

не могу воспроизвести. Расскажите пошагово, как вносятся данные в форме, начиная с открытия.


Цитата: GOYa от 20 мая 2010, 14:11и когда ввожу запись в поле name выскакивает эрор из первого поста хотя данные в таблицу таки заносятся.

Воспроизвёл. Что интересно — так когда форма создана только для внесения новых данных. Если форма позволяет просматривать и редактировать уже существующие данные, ошибки нет.

A Matter of Life and Death



1. Открыл файл
2. Вызвал форму tab1
3. В поле name ввёл данные
4. Нажал иконку «Следующая запись» на нанели инструментов Навигация формы
5. Ошибка.

A Matter of Life and Death


не могу :)
ООо 3.2.1 RC1.


Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет ???


Цитата: GOYa от 20 мая 2010, 14:59Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет

Видимо, проблему закрыли в Go-OO раньше. Через неделю где-то выйдет 3.2.1 Communinty, проверим ещё разочек там.

A Matter of Life and Death


Цитата: Syzygy от 20 мая 2010, 16:07

Цитата: GOYa от 20 мая 2010, 14:59Самое интересное, что эта трабла с оигинальной Оо 3.2, а с Оо 3.1 от Nowell с той же самой базой проблем нет

Видимо, проблему закрыли в Go-OO раньше. Через неделю где-то выйдет 3.2.1 Communinty, проверим ещё разочек там.

Нет в Go-OO 3.2-13 этот баг есть. Нет в Оо 3.1 от Nowell. Но возможно его нет и в оригинале Оо 3.1


Свобода информации — свобода личности!


Уже много лет одна фигня меня бесит в ОпенОфисе.
У меня есть файл с реестром закупок в файле «Снабжение.ods», который постоянно использую. Т.е. открыл утром и постоянно в нем работаю. Но часто появляется ошибка при записи файла после внесения изменения в файл:

«Ошибка при сохранении документа Снабжение:
Ошибка записи.
Невозможно записать файл.»

Я закрываю этот файл и сразу же его открываю. И после этого вообще не вознкиает никаких ошибок. Т.е. эта ошибка появляется после первого открытия файла. Не помогло даже внести в свойствах файла на вкладке «Безопасность» полный доступ всем учеткам и даже пробовал добавить учетку «Все» с полным доступом. Все равно, почти всегда возникает ошибка при первой записи в файл.
Такая фигня только с этим конкретным файлом. Пробовал открыть его как копию, пересохранить, сбросить права доступа к этмоу файлу
Скажите, кто-нить знает, как это исправить?!

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

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

кнопкой внутри поля и из контекстного меню выберите пункт Заменить на > Поле со списком. Опять щелкните правой кнопкой на поле Категория. Выбе-

рите пункт Элемент управления.

Рис. 38. Открытие формы Номера телефонов в режиме разработки

Измените свойства объекта (рис. 39):

Рис. 39. Изменение свойств поля Категория

1.Используя вкладку Общие, найдите внизу параметр Раскрываемый и измените его значение на Да.

2.Используя вкладку Данные, измените следующие настройки:

41

Поле данных: Категория;

Пустая строка – NULL: Да (могут быть пустые значения);

Требуется ввод данных: Нет (напомним, что поле Категория не являлось обязательным для таблицы Номера телефонов);

Тип содержимого списка: Таблица;

Содержимое списка: Категории абонентов.

Сохраните форму и закройте окно конструктора форм. В главном окне OpenOffice Base дважды щелкните по имени формы Номера телефонов, для того чтобы открыть ее в режиме ввода и просмотра данных. Заполните все поля первой записи. При этом при переходе к полю Категория появится список возможных значений категорий абонентов телефонного справочника из таблицы Категории абонентов (рис. 40), чего мы и добивались. Причем необходимо отметить, что если бы таблица Категории абонентов содержала более одного поля, то данные для поля со списком выбирались бы все равно из первого поля!

Рис. 40. Ввод данных в форму Номера телефонов

3.4. Ввод данных с помощью формы

Итак, поля на формах используются для ввода данных в базу данных. С их помощью мы вводим все данные, относящиеся к каждому объекту базы данных,

42

т.е. номеру телефона, который хотим сохранить в нашей базе данных.

Каждая запись (то, что раньше являлось отдельной строкой таблицы) теперь представляет из себя как бы отдельную карточку. Считается, что вводить данные удобнее именно в таком режиме.

Перемещаться между полями можно при помощи клавиши Tab, или клавиш управления курсором. При нажатии клавиши Tab после ввода данных о номере телефона в последнее поле формы, все поля очищаются за исключением, возможно, полей со значением Автозначение. Это значит, что мы завершили создание первой записи на форме (или таблице) номера телефонов. Заполнив запись перейти к новой записи (карточке) можно нажав клавишу Enter. Каждый раз, когда мы заполняем полями, мы добавляем очередную запись. Например, запись 2 на рис. 41.

Рис. 41. Запись в форме номера телефонов

В нижней левой части формы есть слово Запись. После него расположена навигационная панель с информацией о номере обрабатываемой записи и коли-

43

честве записей в таблице. В нашем примере, показана запись 2 из 2 имеющихся. Справа от этих цифр имеются дополнительные иконки, которые позволяют перемещаться от одной записи к другой (стрелки), добавлять новые записи, удалять записи и выполнять другие действия (рис. 42).

Рис. 42. Навигационная панель для управления записями

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

Ввод данных с помощью других форм (Абоненты, например) осуществляется аналогично. При этом пустыми (незаполненными) могут остаться только те поля, у которых в свойствах указано для параметра Обязательное — Нет.

Переход к последнему полу формы автоматически сохраняет все данные для этой записи и начинает обработку следующей записи. Если остались незаполненные обязательные поля, то Вы увидите следующее окно (рис. 43).

Рис. 43. Ошибка вставки новой записи

При вводе данных поля Фамилия таблиц Номера телефонов и Абонен-

44

ты могут не обязательно принимать набор одних и тех же значений. В итоге, содержимое таблиц Номера телефонов и Абоненты должно выглядеть примерно как на рис. 44. Видно, что сортировка записей выполняется по одному из полей, чаще всего по полю Первичного ключа.

Рис. 44. Таблицы Номера телефонов и Абоненты

3.5. Сохранение формы в формате OpenOffice Writer

Разнесение файловой базы данных и формы, отображающей данные, может выглядеть удобным для конечного пользователя базы. Это повышает безопасность и ускоряет загрузку. Процесс разнесения прост: форма сохраняется как отдельный файл OO Writer, а потом удаляется из базы данных.

Сохранение формы создаст отдельный текстовой файл, где будут находится поля, диалоги и т.д. Для этого проделаем следующее:

Открываем необходимую форму нашей базы данных (пусть это будет главная форма Номера телефонов), выбираем Файл > Сохранить копию как… и

сохраняем её в нужный нам каталог (удобнее положить в тот же каталог, где лежит база данных). Для сохранения используем имя Номера телефонов, а расширение программа подставит сама.

Закрываем открытую форму и ОО Base. Открываем только что созданный документ Номера телефонов.odt. Все поля пока пустые. Настраиваем работоспособность формы. Активируем режим разработки и отображаем панель Ди-

зайн формы. Откройте окно Свойства формы. Для параметра Источник

45

данных выбираем нашу базу данных Телефонный справочник. Проверьте параметры Тип содержимого источника и Содержимое (рис. 45). Сохраня-

ем форму. Проверяем – форма работает.

Рис. 45. Выбор источника данных для формы

4. Доступ к другим источникам данных

В качестве продвинутых решений Base предлагает поддержку внешних совместимых обработчиков баз данных, таких как MySQL, являющихся идеальной системой для создания быстрых многопользовательских баз данных с поддержкой работы по сети. Помимо совместимых обработчиков, Base может использовать другие типы внешних источников данных, включая Microsoft Access, адресные книги, электронные таблицы и даже простые текстовые файлы.

OpenOffice.org позволяет получить доступ к источникам данных и связать их с любым документом OO. Например, связывая письмо с внешним документом, содержащим фамилии и адреса получателей, можно для каждого адреса сгенерировать свою копию этого письма.

Для регистрации источника данных, выберите пункт меню Файл > Соз-

дать > Базу данных, затем выберите Подключиться к существующей базе данных и определите тип источника данных, с которым необходимо соединиться. После этого мастер выберет нужный источник данных. Типы источников данных, к которым можно получить доступ из OpenOffice Base, представлены на рис. 46.

46

Выберите тип базы данных из выпадающего списка и щелкните по кнопке Далее. Щелкните по кнопке Просмотр и выберите каталог, содержащий базу данных или источник данных, и щелкните по кнопке Далее. Согласитесь с ус-

тановками по умолчанию: Да, зарегистрировать мне базу данных и Открыть базу данных для редактирования. Щелкните по кнопке Готово. Назовите и сохраните базу данных в выбранном каталоге в формате OpenOffice Base. Импортируя данные из баз данных вам будет предложено создать форму, исполь-

зуя Мастер для создания форм.

Если электронная таблица защищена паролем, установите флажок Требуется пароль. Если электронная таблица требует ввода имени пользователя, введите его. Если требуется также ввод пароля, установите его флажок.

Рис. 46. Подключение к внешней базе данных (источнику данных)

Доступ к некоторым типам баз данных позволяет вводить и изменять за-

47

писи в этих базах данных. Доступ к электронным таблицам, однако, не позволяет делать в них изменения.

4.1. Регистрация баз данных в OpenOffice

Это довольно простая процедура. В меню Сервис > Параметры > База данных OpenOffice.org выберите раздел Базы данных. В списке Зарегистри-

рованные базы данных будут перечислены эти базы данных (рис. 47). Ниже этого списка находятся три кнопки: Создать…, Удалить, Правка… Для регистрации базы данных, созданной в OpenOffice.org щелкните по кнопке Создать. Далее с помощью кнопки Обзор найдите нужную базу данных. Убедитесь в правильности зарегистрированного названия и щелкните по кнопке OK.

Рис. 47. Зарегистрированные базы данных

4.2. Использование источников данных

Зарегистрировав источник данных, такой как электронная таблица, текстовый документ, внешняя база данных или другой допустимый источник данных, вы можете использовать его в других модулях OpenOffice.org, включая Writer и Calc, выбрав пункт Вид > Источники данных или нажав клавишу F4.

48

Просмотр источников данных

Откройте документ в Writer или в Calc. Чтобы просмотреть доступные источники данных, нажмите F4 или выберите Вид > Источники данных из выпадающего меню. Появится список зарегистрированных баз данных, включая Bibliography и любые зарегистрированные базы данных.

Чтобы просмотреть каждую базу данных, щелкните на символе + слева от имени базы данных (рис. 48). Будут отображены строки Таблицы и Запросы. Щелкните по + слева от раздела Таблицы, чтобы увидеть созданные таблицы. Теперь щелкните по имени таблицы, чтобы увидеть все ее записи.

Рис. 48. База данных Телефонный справочник, открытая в Writer

Щелкните правой кнопкой по иконке базы данных, таблице или запросе и выберите пункт Редактирование базы данных. Далее вы можете редактировать, добавлять и удалять таблицы, запросы, формы и отчеты.

Использование источников данных в документах

49

Чтобы вставить поле из таблицы в документ (например, в электронную таблицу Calc или документ Writer), щелкните на имени поля (серый прямоугольник – в заголовке столбцов) и, удерживая нажатой левую кнопку мыши, перетащите поле в документ. В документе Writer, оно появится как поле <ИМЯ> (где ИМЯ это название поля, которое вы перетащили). В Calc оно появится в виде текстового окна.

Часто источник данных используется для рассылки писем. Выбрав Сер-

вис > Рассылка писем или щелкнув на иконке Циркулярное письмо (иконка с небольшим листом бумаги и конвертом на панели Данные таблиц), вы загрузите мастер Рассылка писем OpenOffice.org, который управляет созданием документа для письма.

Редактирование источников данных

Некоторые внешние источники данных (кроме электронных таблиц) можно редактировать с помощью диалогового окна панели Просмотр источника данных. Записи можно редактировать, добавить или удалить.

Данные отображаются в правой части экрана. Щелкните по полю, которое надо отредактировать. Ниже записей имеется пять небольших кнопок. Первые четыре кнопки служат для навигации по записям или для перемещения в начало или конец таблицы. Пятая кнопка, с небольшой звездочкой , служит для добавления новой записи (рис. 48).

Для удаления записи, щелкните правой кнопкой по серому полю рядом с нужной записью чтобы выделить всю строку, а затем выберите Удалить строки для удаления выделенной строки.

4.3. Импорт данных в таблицы базы данных

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

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

I am attempting to add records to a table which is linked to other tables that I don’t want to modify. When I attempt to add a record to the table in question, an error message appears:

Error inserting the new record.
Violation of the unique index "<unique index>":
duplicate values for columns "xxx", "yyyy" in statement [INSERT INTO "table"("xxx","yyyy")VALUES(?,?)].

The error message is correct in that the table does have a unique index composed of two fields. However in the first instance I don’t want records added to that table as it is only used as a lookup table for the main table which I am adding or modifying records.

The erroneous table does in fact have three keys. One primary, which is auto incremented, a second, unique key comprising two fields, and a third, foreign lookup key which is not unique.

I’m not sure what’s going on under the hood here but I think it is to do with the index comprising two fields.

SELECT DISTINCT "Futures_Orders"."Date",
"Futures_Orders"."Symbol","Futures_Orders"."Contract_Mth",
"Futures_Orders"."Send_To_Broker",
"Futures_Orders"."Order-Id", 
"Futures_Orders"."Broker","Futures_Orders"."Order_Action",
"Futures_Orders"."No_Contracts",
"Futures_Orders"."Order_Price", 
"Futures_Orders"."Trade_Type",
CASE "Futures_Orders"."Order_Action" 
   WHEN 'b' THEN 's' 
ELSE 'b' 
END "If_Done_Action",
"Futures_Orders"."If_Done_Price", 
"Futures_Orders"."No_Contracts" * ( 
CASE "Contract_Details"."USIntRates" 
   WHEN 'n' THEN ABS( "Futures_Orders"."Order_Price"
      - "Futures_Orders"."If_Done_Price" ) / 
      "Contract_Details"."MinTick"
   ELSE ABS(ABS(TRUNCATE("Futures_Orders"."Order_Price",
       0)-TRUNCATE("Futures_Orders"."If_Done_Price",
          0))*"Contract_Details"."MinTick" -
       CASE 
          WHEN "Contract_Details"."Symbol" 
                   IN ( 'FV', 'TU' ) THEN 400 
          ELSE 200 
       END * 
       ABS("Futures_Orders"."Order_Price" -
         TRUNCATE("Futures_Orders"."Order_Price", 0)-
         "Futures_Orders"."If_Done_Price" + TRUNCATE(
         "Futures_Orders"."If_Done_Price", 0 )))
END 
* "Contract_Details"."MinTickVal" / "FX_Rates"."Rate" +
CASE
   WHEN "Broker_Commissions"."Commission_AUD" +
      "Broker_Commissions"."Commission" = 0
      THEN "Broker"."Commission"
   ELSE "Broker_Commissions"."Commission_AUD" +
      "Broker_Commissions"."Commission" / "FX_Rates"."Rate"
END
* 2) "Risk",
"Contract_Details"."Symbol",  "Contract_Details"."Currency",
"FX_Rates"."Code", "Broker"."Broker",
"Broker_Commissions"."Symbol", "Broker_Commissions"."Broker",
"Broker_Commissions"."ID"
FROM "Futures_Orders", "Contract_Details", "FX_Rates", "Broker",
"Broker_Commissions" WHERE "Futures_Orders"."Symbol" =
"Contract_Details"."Symbol" AND "Contract_Details"."Currency" =
"FX_Rates"."Code" AND "Futures_Orders"."Broker" = "Broker"."Broker"
AND "Futures_Orders"."Broker" = "Broker_Commissions"."Broker" AND
"Futures_Orders"."Symbol" = "Broker_Commissions"."Symbol"

I am attempting to add records to a table which is linked to other tables that I don’t want to modify. When I attempt to add a record to the table in question, an error message appears:

Error inserting the new record.
Violation of the unique index "<unique index>":
duplicate values for columns "xxx", "yyyy" in statement [INSERT INTO "table"("xxx","yyyy")VALUES(?,?)].

The error message is correct in that the table does have a unique index composed of two fields. However in the first instance I don’t want records added to that table as it is only used as a lookup table for the main table which I am adding or modifying records.

The erroneous table does in fact have three keys. One primary, which is auto incremented, a second, unique key comprising two fields, and a third, foreign lookup key which is not unique.

I’m not sure what’s going on under the hood here but I think it is to do with the index comprising two fields.

SELECT DISTINCT "Futures_Orders"."Date",
"Futures_Orders"."Symbol","Futures_Orders"."Contract_Mth",
"Futures_Orders"."Send_To_Broker",
"Futures_Orders"."Order-Id", 
"Futures_Orders"."Broker","Futures_Orders"."Order_Action",
"Futures_Orders"."No_Contracts",
"Futures_Orders"."Order_Price", 
"Futures_Orders"."Trade_Type",
CASE "Futures_Orders"."Order_Action" 
   WHEN 'b' THEN 's' 
ELSE 'b' 
END "If_Done_Action",
"Futures_Orders"."If_Done_Price", 
"Futures_Orders"."No_Contracts" * ( 
CASE "Contract_Details"."USIntRates" 
   WHEN 'n' THEN ABS( "Futures_Orders"."Order_Price"
      - "Futures_Orders"."If_Done_Price" ) / 
      "Contract_Details"."MinTick"
   ELSE ABS(ABS(TRUNCATE("Futures_Orders"."Order_Price",
       0)-TRUNCATE("Futures_Orders"."If_Done_Price",
          0))*"Contract_Details"."MinTick" -
       CASE 
          WHEN "Contract_Details"."Symbol" 
                   IN ( 'FV', 'TU' ) THEN 400 
          ELSE 200 
       END * 
       ABS("Futures_Orders"."Order_Price" -
         TRUNCATE("Futures_Orders"."Order_Price", 0)-
         "Futures_Orders"."If_Done_Price" + TRUNCATE(
         "Futures_Orders"."If_Done_Price", 0 )))
END 
* "Contract_Details"."MinTickVal" / "FX_Rates"."Rate" +
CASE
   WHEN "Broker_Commissions"."Commission_AUD" +
      "Broker_Commissions"."Commission" = 0
      THEN "Broker"."Commission"
   ELSE "Broker_Commissions"."Commission_AUD" +
      "Broker_Commissions"."Commission" / "FX_Rates"."Rate"
END
* 2) "Risk",
"Contract_Details"."Symbol",  "Contract_Details"."Currency",
"FX_Rates"."Code", "Broker"."Broker",
"Broker_Commissions"."Symbol", "Broker_Commissions"."Broker",
"Broker_Commissions"."ID"
FROM "Futures_Orders", "Contract_Details", "FX_Rates", "Broker",
"Broker_Commissions" WHERE "Futures_Orders"."Symbol" =
"Contract_Details"."Symbol" AND "Contract_Details"."Currency" =
"FX_Rates"."Code" AND "Futures_Orders"."Broker" = "Broker"."Broker"
AND "Futures_Orders"."Broker" = "Broker_Commissions"."Broker" AND
"Futures_Orders"."Symbol" = "Broker_Commissions"."Symbol"

Код:

                    DECLARE @t_guid uniqueidentifier, @deal INT
                    SELECT @t_guid = newid()
                    EXEC @deal = [gkArcade].[gk].[SYS_GEN_ID]
                    INSERT INTO [gkArcade].[gk].[TRANSACTS] (ACCOUNT, ACTIVITY,  [DATE], 
                        VALUE1,  UNIT1,  VALUE2,  UNIT2,  QUANT, 
                        CREATOR, CREATORADDR, CREATORREF, CREATORDATE, 
                        LEVEL2, [LEVEL], CARD, PERIOD ) 
                    VALUES( @CARD, 1, GETDATE(), 
                        @PRICE, @UNIT, 1, 101, 1, 
                        1, @MACHINE, NULL, GETDATE(), 
                        @LEVEL2, @LEVEL, @CARD, NULL )
                    INSERT INTO [gkArcade].[gk].[GK_TRANSACTS]
                        ([DATE],[ACTIVITY],[CARD],[ACCOUNT_TYPE],[VALUE],[QUANT],[CREATOR],[CREATORADDR]
                        ,[DEAL],[LEVEL],[LEVEL2],[ARCADE],[GUID],[TRANSACT_GUID])
                        VALUES (GETDATE(),1,@CARD,11,0-@PRICE,1.00,1,@MACHINE,@deal,@LEVEL,@LEVEL2,1,newid(),@t_guid)
                    INSERT INTO [gkArcade].[gk].[GK_TRANSACTS]
                        ([DATE],[ACTIVITY],[CARD],[ACCOUNT_TYPE],[VALUE],[QUANT],[CREATOR],[CREATORADDR]
                        ,[DEAL],[LEVEL],[LEVEL2],[ARCADE],[GUID],[TRANSACT_GUID])
                        VALUES (GETDATE(),1,@CARD,3,1.00,0.00,1,@MACHINE,@deal,@LEVEL,@LEVEL2,1,newid(),@t_guid)


Форум программистов Vingrad

> Ошибка при вставке новой записи в таблицу 

V

Опции темы

Sportsmen

Шустрый
*

Профиль
Группа: Участник
Сообщений: 71
Регистрация: 3.11.2006
Где: Раша Родина наша- Старый Оскол

Репутация: нет
Всего: нет

Помогите новичку! Вот такой код. Вылетает ошибка: «Table1: Cannot perform this operation on a close dataset»  smile

Код

try
with TableInfo do
begin
Insert;
FieldByName('Nom_zak').AsString:=EditNon_zak.Text;
FieldByName('Date').AsDateTime:=DateTimePicker1.Date;
FieldByName('Name_zap').AsString:=EditName_zap.Text;
FieldByName('Nom_zap').AsString:=EditNom_zap.Text;
Post;
end;
with TableClient do
begin
Insert;
FieldByName('Fam').AsString:=EditFam.Text;
FieldByName('VIN').AsString:=EditVIN.Text;
FieldByName('Tel').AsString:=EditTel.Text;
FieldByName('Adres').AsString:=EditAdres.Text;
Post;
end;
except

end;

Данкинг

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130

Код

TableInfo .Active:=true;

———————

There’s nothing left but silent epitaphs.

Sportsmen

Шустрый
*

Профиль
Группа: Участник
Сообщений: 71
Регистрация: 3.11.2006
Где: Раша Родина наша- Старый Оскол

Репутация: нет
Всего: нет

Цитата(Данкинг @ 19.5.2007,  13:32)
Код

TableInfo .Active:=true;

У меня это уже в onCreat прописано… 

Savek

Опытный
**

Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7

Цитата(Sportsmen @  19.5.2007,  13:30 Найти цитируемый пост)
«Table1: Cannot perform this operation on a close dataset»

Приведенный тобой код ошибок не содержит, внимательнее читай текст ошибки 

Данкинг

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130

Цитата(Sportsmen @ 19.5.2007,  14:45)
Цитата(Данкинг @ 19.5.2007,  13:32)
Код

TableInfo .Active:=true;

У меня это уже в onCreat прописано…

Ну, может быть, connection неактивен тогда…

———————

There’s nothing left but silent epitaphs.

Sportsmen

Шустрый
*

Профиль
Группа: Участник
Сообщений: 71
Регистрация: 3.11.2006
Где: Раша Родина наша- Старый Оскол

Репутация: нет
Всего: нет

Вообще я там BDE использую, там конекта нет…

ТоляМБА

Котэ
***

Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004
Где: Трансильвания

Репутация: 3
Всего: 252

Цитата(Sportsmen @  20.5.2007,  21:40 Найти цитируемый пост)
Вообще я там BDE использую, там конекта нет… 

smile 
Ну это если ты TDataBase не юзаешь, а каждый алиас в ручки прописываешь

SergeBS

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22

Sportsmen

Шустрый
*

Профиль
Группа: Участник
Сообщений: 71
Регистрация: 3.11.2006
Где: Раша Родина наша- Старый Оскол

Репутация: нет
Всего: нет

Сделал, проще: smile  научился создавать это с помощью MSAccess и ADO smile  smile Там намного легче.



















Правила форума «Delphi: Базы данных и репортинг»
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »

##### — эти символы сообщают, что столбец, содержащий числа, недостаточно широк, или же дата и время, введенные в ячейки данного столбца, содержат отрицательные числа. В первом случае достаточно просто увеличить ширину столбца или изменить числовой формат данных (например, уменьшить число знаков после запятой). Во втором же случае надо:

• проверить формулу, если вычисляется число дней между двумя датами;

• если формула не содержит ошибок, необходимо изменить формат ячейки и перейти, например, с формата Дата и время на Общий или Числовой формат.

Ошибка: 501 — недопустимый символ. Формула содержит недопустимый символ, например =1Eр вместо =1E2.

Ошибка: 502 — недопустимый аргумент. Функция имеет недопустимый аргумент, например отрицательное число для функции извлечения корня.

Ошибка: 503 (#NUM! ) — недопустимая операция с плавающей запятой. Вычисление приводит к переполнению диапазона значений.

Ошибка: 504 — ошибка в списке параметров. Используется недопустимый параметр функции, например текст вместо числа или гиперссылка вместо ссылки на ячейку.

Ошибка: 508 — нет пары.

Отсутствует скобка (закрывающая или открывающая).

Ошибка: 509 — отсутствует оператор. В формуле отсутствует оператор (+, – и т. д.).

Ошибка: 510 — отсутствует переменная.

Отсутствует переменная (два оператора стоят рядом).

Ошибка: 511 — отсутствует переменная. В функции не хватает переменной.

Ошибка: 512 — слишком длинная формула.

Общее число внутренних маркеров (операторов, переменных, скобок) в формуле превышает 512 или общее число матриц, которые создает формула, превышает 150.

Ошибка: 513 — слишком длинная строка. Идентификатор в формуле превышает 64 Kб.

Ошибка: 514 — внутреннее переполнение.

Переполнен стек вычислений (например, операция сортировки предпринята на слишком большом количестве числовых данных — более 100 000).

Ошибка: 516 — внутренняя синтаксическая ошибка. В стеке вычислений недоступна необходимая матрица.

Ошибка: 517 — внутренняя синтаксическая ошибка. Документ с новой функцией открыт в старой версии программы.

Ошибка: 518 — внутренняя синтаксическая ошибка. Переменная недоступна.

Ошибка: 519 (#VALUE) — нет результата. Ячейка, на которую ссылается формула, содержит текст вместо числа. -В ячейке отображается #ЗНАЧЕН! , а не Ошибка: 519.

Ошибка: 520 — внутренняя синтаксическая ошибка. Компилятор создал неизвестный код компиляции.

Ошибка: 521 — внутренняя синтаксическая ошибка. Нет результата.

Ошибка: 522 — циклическая ссылка. Формула ссылается прямо или косвенно на саму себя, а параметр Итерации не настроен.

Ошибка: 523 — процедура вычисления не сходится. Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.

Ошибка: 524 (#REF) — недопустимые ссылки. В формуле отсутствует столбец, строка или лист с заданной ячейкой.

-В ячейке отображается #ССЫЛ!2, а не Ошибка: 524.

Ошибка: 525 (#NAME) — недопустимые имена. Нет допустимой ссылки, доменного имени, подписи столбца/строки, макроса, присутствует неправильный десятичный разделитель или не найдена надстройка.

-В ячейке отображается #ИМЯ, а не Ошибка: 525.

Ошибка: 526 — внутренняя синтаксическая ошибка. Ссылка устарела.

Ошибка: 527 — внутреннее переполнение. Слишком сложное вложение ссылок.

Ошибка: 532 (#DIV/0!) — деление на ноль. В формуле используется деление на ноль.

Уже много лет одна фигня меня бесит в ОпенОфисе.
У меня есть файл с реестром закупок в файле «Снабжение.ods», который постоянно использую. Т.е. открыл утром и постоянно в нем работаю. Но часто появляется ошибка при записи файла после внесения изменения в файл:

Цитата:

«Ошибка при сохранении документа Снабжение:
Ошибка записи.
Невозможно записать файл.»

Я закрываю этот файл и сразу же его открываю. И после этого вообще не вознкиает никаких ошибок. Т.е. эта ошибка появляется после первого открытия файла. Не помогло даже внести в свойствах файла на вкладке «Безопасность» полный доступ всем учеткам и даже пробовал добавить учетку «Все» с полным доступом. Все равно, почти всегда возникает ошибка при первой записи в файл.
Такая фигня только с этим конкретным файлом. Пробовал открыть его как копию, пересохранить, сбросить права доступа к этмоу файлу
Скажите, кто-нить знает, как это исправить?!

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

Is Openoffice Base Error Inserting New Record appearing? Would you like to safely and quickly eliminate Openoffice Base Error which additionally can lead to a blue screen of death?

When you manually edit your Windows Registry trying to take away the invalid keys you’re taking a authentic chance. Unless you’ve got been adequately trained and experienced you’re in danger of disabling your computer system from working at all. You could bring about irreversible injury to your whole operating system. As very little as just 1 misplaced comma can preserve your Pc from even booting every one of the way by!

Troubleshooting Windows XP, Vista, 7, 8 & 10

Simply because this chance is so higher, we hugely suggest that you make use of a trusted registry cleaner plan like CCleaner (Microsoft Gold Partner Licensed). This system will scan and then fix any Openoffice Base Error Inserting New Record complications.

Registry cleaners automate the entire procedure of finding invalid registry entries and missing file references (including the Inserting error) likewise as any broken hyperlinks inside of your registry.

Issue with

Backups are made immediately prior to each and every scan providing you with the choice of undoing any changes with just one click. This protects you against doable damaging your pc. Another advantage to these registry cleaners is that repaired registry errors will strengthen the speed and performance of one’s procedure drastically.

  • http://ubuntuforums.org/showthread.php?t=1642858
  • http://comments.gmane.org/gmane.comp.openoffice.bugs/868314
  • http://ooo-forums.apache.org/en/forum/viewtopic.php?f=13&t=60753
  • http://ooo-forums.apache.org/en/forum/viewtopic.php?f=39&t=27838

Cautionary Note: Yet again, for those who are not an state-of-the-art consumer it’s very encouraged that you simply refrain from editing your Windows Registry manually. If you make even the smallest error within the Registry Editor it can result in you some serious issues that may even call for a brand new set up of Windows. Not all difficulties attributable to incorrect Registry Editor use are solvable.

Fixed:

Symptoms of Openoffice Base Error Inserting New Record
“Openoffice Base Error Inserting New Record” appears and crashes the energetic method window.
Your Personal computer routinely crashes with Openoffice Base Error Inserting New Record when running the exact same system.
“Openoffice Base Error Inserting New Record” is shown.
Windows operates sluggishly and responds little by little to mouse or keyboard input.
Your computer periodically “freezes” for the number of seconds in a time.

Will cause of Openoffice Base Error Inserting New Record

Corrupt obtain or incomplete set up of Windows Operating System software program.

Corruption in Windows registry from a new Windows Operating System-related application adjust (install or uninstall).

Virus or malware infection which has corrupted Windows method documents or Windows Operating System-related application data files.

Another method maliciously or mistakenly deleted Windows Operating System-related files.

Mistakes this sort of as “Openoffice Base Error Inserting New Record” can be brought about by several different elements, so it really is important that you troubleshoot every of the achievable brings about to forestall it from recurring.

Simply click the beginning button.
Variety “command” inside the lookup box… Will not hit ENTER nonetheless!
Although keeping CTRL-Shift in your keyboard, hit ENTER.
You’re going to be prompted that has a authorization dialog box.
Click on Of course.
A black box will open having a blinking cursor.
Variety “regedit” and hit ENTER.
Within the Registry Editor, choose the connected key (eg. Windows Operating System) you wish to back again up.
Within the File menu, choose Export.
Inside the Preserve In list, pick out the folder in which you wish to save the Windows Operating System backup key.
Inside the File Title box, sort a reputation for the backup file, these types of as “Windows Operating System Backup”.
From the Export Vary box, ensure that “Selected branch” is selected.
Click on Help you save.
The file is then saved by using a .reg file extension.
You now use a backup within your related registry entry.

Solution to your problem

There are actually some manual registry editing measures that can not be talked about in this article due to the high chance involved for your laptop or computer method. If you want to understand more then check out the links below.

Additional Measures:

One. Conduct a Thorough Malware Scan

There’s a probability the Record Openoffice Base Inserting New Error error is relevant to some variety of walware infection. These infections are malicious and ready to corrupt or damage and possibly even delete your ActiveX Control Error files. Also, it’s attainable that your Openoffice Base Error Inserting New Record is actually connected to some element of that malicious plan itself.

2. Clean Disk Cleanup

The a lot more you employ your computer the extra it accumulates junk files. This comes from surfing, downloading packages, and any sort of usual computer system use. When you don’t clean the junk out occasionally and keep your program clean, it could turn into clogged and respond slowly. That is when you can encounter an Openoffice error because of possible conflicts or from overloading your hard drive.

Once you clean up these types of files using Disk Cleanup it could not just remedy Openoffice Base Error Inserting New Record, but could also create a dramatic change in the computer’s efficiency.

Tip: While ‘Disk Cleanup’ is definitely an excellent built-in tool, it even now will not completely clean up Openoffice Base discovered on your PC. There are numerous programs like Chrome, Firefox, Microsoft Office and more, that cannot be cleaned with ‘Disk Cleanup’.

Since the Disk Cleanup on Windows has its shortcomings it is extremely encouraged that you use a specialized sort of challenging drive cleanup and privacy safety application like CCleaner. This system can clean up your full pc. If you run this plan after each day (it could be set up to run instantly) you are able to be assured that your Pc is generally clean, often operating speedy, and always absolutely free of any New error associated with your temporary files.

How Disk Cleanup can help

1. Click your ‘Start’ Button.
2. Style ‘Command’ into your search box. (no ‘enter’ yet)
3. When holding down in your ‘CTRL-SHIFT’ important go ahead and hit ‘Enter’.
4. You will see a ‘permission dialogue’ box.
5. Click ‘Yes’
6. You will see a black box open up plus a blinking cursor.
7. Variety in ‘cleanmgr’. Hit ‘Enter’.
8. Now Disk Cleanup will start calculating the amount of occupied disk space you will be able to reclaim.
9. Now a ‘Disk Cleanup dialogue box’ seems. There will be a series of checkboxes for you personally to pick. Generally it will likely be the ‘Temporary Files’ that consider up the vast majority of your disk area.
10. Verify the boxes that you want cleaned. Click ‘OK’.

How to repair

3. System Restore can also be a worthwhile device if you ever get stuck and just desire to get back to a time when your computer system was working ideal. It will work without affecting your pics, paperwork, or other crucial information. You can discover this option with your User interface.

Openoffice Base

Manufacturer

Device

Operating System


Openoffice Base Error Inserting New Record


5 out of
5

based on
47 ratings.

 

Автор: А. А. Ракитин

Проще всего представить себе базу данных как таблицу, в ячейках которой содержатся данные. Базы такого типа называются реляционными.

Каждая строка таблицы соответствует одной записи в базе. Записей может быть сколько угодно, каждая из них отражает свойства конкретного реального объекта. Процесс пополнения базы данных заключается в добавлении новых записей и в редактировании существующих.

Колонки определяют атрибуты (свойства) записей, а значит и реальных объектов. Набор колонок должен быть продуман и определен до создания базы. После того как база создана, добавление новой колонки иногда может быть связано с некоторыми трудностями. Чаще это не так, но лучше все-таки определиться до, а не после.

База данных может состоять из нескольких таблиц и эти таблицы могут быть связаны между собой.

LibreOffice Base позволяет создавать как локальные, так и сетевые реляционные базы данных или подключаться к уже имеющимся базам. В любом случае Base позволяет добавлять и удалять записи, редактировать данные, делать выборки, формировать отчеты.

Нужно отметить, что хотя Base является частью офисного пакета LibreOffice, по умолчанию он, как правило, не устанавливается. Поэтому LibreOffice Base скорее всего потребуется доустановить.

Создание базы данных

При запуске LibreOffice Base возникает окно мастера, в котором предлагается выбрать один из трех режимов работы;

  • Создать новую базу данных.
  • Открыть существующий файл (содержащий базу данных).
  • Подключиться к существующей базе данных.

При выборе второго пункта можно подключиться к базе, созданной ранее в LibreOffice Base, которая по умолчанию имеет формат dBASE. Третий пункт позволяет работать с локальными и сетевыми базами многих распространенных типов. Для каждого типа используется свой определенный драйвер, дающий доступ к данным.

Для создания новой базы данных нужно выбрать первый пункт. Затем нажать Далее и выбрать Зарегистрировать базу данных и Открыть базу для редактирования. При завершении работы мастера потребуется указать имя новой базы и место для сохранения файла с ней. После этого открывается окно для работы с базой.

Окно LibreOffice Base

Окно LibreOffice Base.

В левой части окна перечислены четыре составляющих, которые являются частями базы: Таблицы, Запросы, Формы, Отчеты. Как уже говорилось, основой базы являются таблицы. Все остальные элементы не содержат каких-то новых данных, а всего лишь берут их из таблиц. В только что созданной базе нет ни одной таблицы, поэтому нет ни запросов, ни форм, ни отчетов. Ниже все они будут рассмотрены, но для начала необходимо создать хотя бы одну таблицу.

Создание таблиц

При щелчке левой кнопкой мыши на элементе Таблицы, в правой нижней части рабочего поля будут перечислены имеющиеся таблицы, сейчас там пусто. В правой верхней части рабочего поля появляется набор возможных действий. Удобнее всего создавать таблицы в режиме дизайна. Для этого надо выбрать верхний пункт, после чего откроется соответствующее окно.

Каждая строка окна Дизайнера таблиц (Table Disign) описывает одну колонку создаваемой таблицы. Первая строка Дизайнера соответствует первой колонке таблицы, вторая строка — второй колонке и так далее. На иллюстрации строки Дизайнера уже заполнены для создания конкретной таблицы.

Проектирование таблицы — ответственный этап создания базы данных. Ошибки, допущенные при проектировании таблицы потом сложно или вообще невозможно исправить.

Окно для создания таблицы в режиме дизайна

Окно для создания таблицы в режиме дизайна.

При проектировании таблицы нужно обратить внимание на два основных момента. Перечень и порядок следования колонок определяют те данные об объекте, которые будут заноситься в базу и то, насколько удобно это будет делать. А свойства этих данных определяют размер файла базы. Это можно пояснить на примере показанной здесь таблицы Авиарейсы.

Каждая колонка таблицы имеет имя, которое задается в графе Название поля. Хорошей практикой, особенно для таблиц с большим количеством колонок, является заполнение графы Описание. В обоих случаях текст просто вводится в нужное поле с помощью клавиатуры. Ширину любой графы можно изменить с помощью мыши.

Изменить порядок следования колонок в таблице или добавить колонку между двумя имеющимися сложно, а часто невозможно.

Графа Тип поля заполняется путем выбора из вариантов, как это показано на иллюстрации для нижней строки (колонка Тип рейса). Для более точной настройки поля в нижней части расположена область Свойства поля. В нем можно указать, что оно является обязательным для заполнения, назначить количество символов в ячейке и определить некоторые другие характеристики.

Количество символов всегда желательно указывать исходя из свойств реальных данных для поля. Дело в том, что, например, для текстовых данных длина поля по умолчанию составляет 100 символов. Именно столько места будет зарезервировано для данных в этом случае. Но, если реальный текст, который будет заноситься в ячейку, состоит максимум из 12 символов, то остальное место будет оставаться пустым. Это приведет к неоправданному увеличению размеров файла базы данных, что плохо, особенно для больших баз.

Первая строка Дизайнера, соответствующая первой колонке таблицы, является ключевым полем. Данные в ней будут появляться автоматически при добавлении каждой новой записи. Здесь это просто номер, который каждый раз увеличивается на единицу. Ключевое поле гарантирует, что в базе ни при каких обстоятельствах не будет содержаться двух одинаковых записей. Они обязательно будут отличаться друг от друга хотя бы ключом. Этого требует технология реляционных баз данных. Если ключевое поле не было создано, Дизайнер обратит на это внимание и предложит его создать.

Полезность баз определяется прежде всего полнотой и актуальностью имеющихся в них данных. А также корректностью их занесения.

Первое означает, что при любых изменениях реальных объектов, для которых построена база, эти изменения следует сразу же отражать в таблицах. Для базы Авиарейсы это добавление новых рейсов, изменение типа самолета, изменение пункта назначения и другие подобные.

Второе связано с недопустимостью ошибок ввода данных, что вполне возможно при их ручном вводе. Например, «Air Europa» и «AirEuropa» являются одним и тем же только с точки зрения человека. Для компьютера это разные данные. Такие ошибки могут (и будут) приводить к получению неправильных запросов или отчетов. Несколько обезопасить себя от совершения подобных ошибок можно использованием копирования и вставки уже введенных ранее данных.

Ниже показан вид заполненной таблицы Авиарейсы. В ней всего 18 строк, ведь это всего лишь пример. В реальности таблицы получаются гораздо больше. Ячейки заполняются точно также, как в LibreOffice Calc — с помощью мыши и клавиатуры. Данные можно импортировать из таблицы LibreOffice Calc, если такая имеется.

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

Заполненная таблица Авиарейсы

Заполненная таблица Авиарейсы.

С таблицами уже можно делать некоторые полезные вещи. Например, можно сортировать записи по данным в любом столбце (в восходящем или нисходящем порядке). Можно применить фильтр для показа только записей, содержащих определенное поле. Инструменты, предназначенные для таких манипуляций, обведены на иллюстрации красным овалом.

Создание отчетов

Обычно получение отчета становится первым действием (а иногда и единственным) после создания таблицы. Всегда приятно посмотреть на результат работы, тем более, что отчеты выглядят достаточно хорошо. К тому же построение отчета является очень простой процедурой и требует буквально всего несколько кликов мышкой.

Отчет — это просто красивая форма представления данных из таблицы. Обычно его создают для последующей печати. В отчет можно включать не все данные таблицы. Выбор производится по целым колонкам — их можно включить в отчет или исключить из него. Если этого недостаточно, то сначала надо создать запрос, а уже на его основе — отчет. Поскольку запрос тоже является таблицей, то отчет и в этом случае создается так же как для таблицы.

Для создания отчетов имеется мастер, который становится доступен при выделении в левой части рабочего окна LibreOffice Base элемента Отчеты.
На первом шаге мастера требуется указать таблицу (или запрос) для построения отчета. Здесь же нужно перенести те поля (колонки) таблицы, данные из которых попадут в отчет. На иллюстрации данные из колонок ID и Тип рейса не будут фигурировать в отчете. Порядок следования колонок в отчете, в отличие от таблицы, можно легко изменить с помощью кнопок, которые обведены на иллюстрации красным кружком.

Мастер создания отчетов. Шаг 1

Мастер создания отчетов. Шаг 1.

Второй шаг мастера позволяет изменить названия колонок. Это сделано потому, что очень часто колонки в таблицах именуются весьма условно. К примеру, это может быть что типа NR1, Type или что-нибудь похожее. В отчете, конечно же, лучше иметь более осмысленные названия полей.

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

На четвертом шаге мастера определяются параметры сортировки строк внутри групп.

Пятый шаг мастера позволяет выбрать стиль отчета. Здесь имеется большой выбор. Кроме того, на этом шаге можно задать ориентацию страницы — альбом или портрет.

На шестом, заключительном шаге надо задать заголовок отчета и выбрать его тип — динамический или статический. Различие состоит в том, что динамический отчет будет содержать те данные из таблицы-источника, которые имеются в ней при его открытии. Другими словами, если данные в таблице изменились даже после создания отчета, в нем они тоже изменятся. Статический отчет, напротив, будет содержать те данные, которые были в таблице в момент его создания. Любая модификация таблицы после создания статического отчета никак не скажется на его содержании.

Фрагмент отчета

Фрагмент отчета.

Некоторые возможности для изменения внешнего вида отчета предоставляет пункт меню Изменить, который вызывает Конструктор отчетов (Report Design). Этот инструмент позволяет изменять положение и размер полей с данными, изменять заголовки, управлять колонтитулами.

К сожалению, работа с Конструктором отчетов не является простым занятием и не очень прозрачна. Зато отчет остается частью базы данных.

Другая возможность для правки связана с тем, что готовый отчет представляет собой обычный документ LibreOffice Writer. Он может быть сохранен в отдельный файл odt (Файл -> Сохранить как) и после этого его можно редактировать, добавлять графику или экспортировать в формат PDF. Здесь нет никаких ограничений. Однако, такой отчет уже будет самостоятельным документом вне базы данных.

Создание запросов

Возможность создавать запросы является важнейшим свойством баз данных. Она позволяет получать из одного набора данных множество различных результатов. Создание запросов и получение ответов — это практически единственный способ вести диалог с базой данных. Поэтому важно овладеть такой техникой.

Результат запроса к базе представляет собой выборку данных из таблицы, сделанную по каким-либо правилам. Поэтому запрос всегда основан на конкретной таблице (или нескольких таблицах). В результате появляется новая таблица. Однако, она не является самостоятельной. При изменении данных в исходной таблице результат запроса также изменится. При удалении таблицы запрос, который на ней основан, также будет автоматически удален.

Для создания запросов в LibreOffice Base имеется три способа, которые становятся доступны при выделении в левой части рабочего окна элемента Запросы.

  • Создать запрос в режиме дизайна. Query Design позволяет очень простым способом создавать достаточно сложные варианты запросов. Он является наиболее предпочтительным вариантом, тем более, что редактирование ранее созданных запросов делается тоже в нем.
  • Использовать мастер для создания запроса. Этот вариант позволяет создавать простые запросы, но явно уступает первому в гибкости. Здесь он рассматриваться не будет.
  • Создать запрос в режиме SQL. В данном случае запрос формируется сразу на языке SQL, который специально был создан для взаимодействия с базами данных. Этот способ предоставляет самые широкие возможности, но требует знания SQL. Здесь он рассматриваться не будет.

При выборе варианта Создать запрос в режиме дизайна появляется окно Query Design и предложение добавить таблицы и запросы. Как уже говорилось, запрос должен быть адресован хотя бы одной таблице. Но их количество может быть больше одной. А, поскольку результатом запроса тоже является таблица, то запрос может основываться и на сделанном ранее запросе. Сейчас в базе имеется только одна таблица и запрос будет строиться именно к ней.

Окно Query Design

Окно Query Design.

В верхней части окна Query Design отображаются источники данных для запроса — таблицы и ранее сделанные запросы, которые были добавлены. В нижней части окна расположена панель построения запроса, тот инструмент, с которым надо работать. Этот инструмент фактически является прототипом той таблицей, которая будет получена в результате запроса. Каждая колонка нижней части Query Design станет колонкой новой таблицы. Все что требуется — это настроить в ней отображение нужных данных.

Для примера будет создан запрос, который выведет записи о рейсах компании Аэрофлот.

Для начала нужно указать, какие данные будут отображаться в каждой колонке новой таблицы. Для первой колонки выбрано поле ID из таблицы Авиарейсы. Для второй — поле Пункт назначения из таблицы Авиарейсы. Итак далее. Чекбокс в строке Видимый означает, что эти данные в будущей таблице будут отображаться. В последней колонке Компания этот чекбокс не отмечен, поэтому колонка не будет видна. Это не требуется, потому, что из заголовка запроса будет ясно, что речь идет о рейсах Аэрофлота.

Зато в последней колонке Компания записан Критерий, его значение равно Аэрофлот (кавычки ставить не нужно, программа добавляет их сама). Критерий в данном случае означает, что из таблицы-источника будут выбраны только те записи, которые в поле Компания содержат значение Аэрофлот.

Кроме того, в колонке Пункт назначения установлена сортировка по возрастанию.

После создания запроса окно Query Design можно закрыть, при этом появится предложение сохранить изменения и указать имя запроса. Готовый запрос появится в правой нижней части рабочего поля программы. Для открытия запроса нужно сделать на нем двойной щелчок левой кнопкой мыши.

В таблице, которая получена в результате запроса, видны все рейсы Аэрофлота, отсортированные в алфавитном порядке по Пункту назначения. Запрос всегда является динамическим. Таблица, полученная в ходе запроса просто отражает данные из таблицы-источника. Поэтому верно и обратное — изменение данных в таблице-запросе меняет их и в таблице-источнике. Из этих соображений не следует редактировать таблицу-запрос.

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

Фрагмент отчета на основе запроса

Фрагмент отчета на основе запроса.

Запрос может содержать несколько критериев отбора. Часто нужно получить записи, которые содержат любое из нескольких значений. Такие варианты записываются в строках Или.

Могут быть и другие ситуации, например требуется получить записи, которые не содержат значение. Или содержат максимальное значение. Вариантов много. Для таких случаев в Query Design имеется поле Функция.

Формы

Форма это просто удобный интерфейс для ввода данных и их редактирования в таблицах. Форму можно представить себе как трафарет, сквозь прорези которого видны поля одной строки таблицы. Этот трафарет можно сдвигать от строки к строке.

Конечно, можно заполнять базу путем наполнения и редактирования ячеек исходной таблицы. Часто так и делают. Но в больших базах этим могут заниматься совершенно разные люди, которые имеют доступ только к части данных и отвечают только за свой участок работы. Не все они могут обладать достаточной квалификацией. Здесь форма может оказаться полезной. К тому же ее можно сделать красивой, добавить на нее логотип и в результате получить законченный программный продукт, который не стыдно продемонстрировать.

Самый простой способ создания формы — использовать мастер. Он запускается после щелчка левой кнопкой мыши на пункте Использовать мастер для создания формы в правой верхней части рабочего поля.

На первом шаге мастер предложит выбрать таблицу или запрос для создания формы и перенести в нее нужные поля. Как уже говорилось, запросы лучше не использовать для занесения данных. Надежнее работать с исходной таблицей.

Второй шаг — Установка субформы — можно пропустить. Он нужен в тех случаях, когда имеются вложенные формы. При пропуске этого шага следующие два также не выполняются.

На пятом шаге производится выбор варианта расположения элементов формы из нескольких предложенных. Здесь лучше попробовать разные, чтобы получить о них представление.

Шестой шаг — Выбор режима источника данных — позволяет наложить некоторые ограничения на работу оператора с формой, а значит и с базой в целом.

На седьмом шаге мастера производится выбор стиля. Имеет смысл посмотреть их все, а затем выбрать наиболее подходящий.

Восьмой шаг — завершающий. Здесь надо будет задать имя для формы и подтвердить ее сохранение.

Готовая форма

Готовая форма.

Перемещаться между полями ввода формы удобно с помощью клавиши Tab.

Навигация по записям таблицы производится инструментами в нижней левой части рабочего пространства. Они обведены на иллюстрации красным овалом.

Файл с рассмотренной здесь базой данных можно скачать.

Поле со списком и другие усовершенствования формы

Выше отмечалось, что любые опечатки при вводе данных в таблицы будут приводить к получению неправильных запросов и отчетов. Одним из вариантов решения проблемы является копирование и последующая вставка содержимого ячеек. При работе с формой имеется еще один способ свести ошибки такого рода к минимуму — поле со списком. Поле ввода в этом случае можно сделать невосприимчивым к набору данных на клавиатуре. Эти данные надо будет выбирать из заранее составленного списка.

Создать в форме поле со списком несложно, надо только аккуратно соблюдать последовательность действий. Если сделать это один-два раза, то потом вся последовательность действий будет выполняться автоматически в силу привычки.

Для примера в поле со списком будет преобразована колонка Тип рейса. В ней имеется три варианта заполнения ячеек — пассажирский, грузовой и смешанный. То же самое могло бы быть сделано для колонки Тип самолета и в других подобных случаях, когда имеется разумное количество вариантов.

Варианты заполнения ячеек для колонки Тип рейса должны быть помещены в отдельную таблицу. Такие таблицы обычно называют справочниками. Любая реальная база данных использует множество справочников — адреса, названия организаций, выбор даты и другие.

Итак, в таблице Авиарейсы имеется колонка Тип рейса. Требуется создать еще одну таблицу Справочник — Тип рейса. В этой дополнительной таблице тоже будет колонка Тип рейса. Эта колонка будет единственной и она же будет ключом. Одноименные колонки в обеих таблицах должны иметь одинаковый тип данных.

В таблице Авиарейсы колонка Тип рейса имеет следующие характеристики:

  • Тип поля — Текст (VARCHAR);
  • Длина — 15 символов.

Надо создать таблицу Справочник — Тип рейса с единственной колонкой Тип рейса, которая имеет точно такие же характеристики. И затем заполнить эту новую таблицу данными.

Теперь можно создать связь ячеек колонки Тип рейса таблицы Авиарейсы с одноименной колонкой таблицы Справочник — Тип рейса. Такой тип связи носит название «один ко многим». Для создания связей служит пункт главного меню LibreOffice Base Сервис -> Связи. При его вызове отрывается окно Добавить таблицы. Здесь надо добавить обе, затем закрыть окно.

Связь делается так: мышкой выделяется поле Тип рейса в таблице Авиарейсы и, при нажатой левой кнопке мыши, курсор ведется к полю Тип рейса таблицы Справочник — Тип рейса. Должна образоваться связь. Если этого не произошло и появилось сообщение об ошибке (смысл которого обычно бывает трудно понять), то в первую очередь надо проверить, совпадает ли тип и длина данных в связываемых колонках.

Создание связи

Создание связи.

Половина дела сделана. Теперь можно изменить форму, точнее поле Тип рейса в ней. Если формы еще нет, то ее надо создать.

Для того, чтобы редактировать готовую форму, надо открыть ее меню по щелчку правой кнопки мыши на названии формы и выбрать пункт Изменить. Форма откроется в Режиме разработки, который имеет достаточно много возможностей для изменения внешнего вида и отображаемых данных. О работе с формой в Режиме разработки надо сказать несколько слов — просто для того, чтобы было понятно, что будет происходить дальше.

Форма содержит Элементы управления, например, такие как поля ввода. Типов элементов управления достаточно много — Кнопки, Метки, Флажки, Текст и другие. В том числе и Поле со списком. Элементы управления можно объединять в Группы. Это позволяет управлять группой элементов как единым объектом. Все это можно перемещать, масштабировать, настраивать вид и отображаемые данные.

Для выделения объекта (элемента управления или группы) надо сделать на нем щелчок левой кнопкой мыши. По щелчку правой кнопки мыши как обычно будет появляться частное меню объекта.

Рабочее пространство Режима разработки имеет три панели инструментов. Все активные кнопки снабжены всплывающими подсказками.

Верхняя панель — это стандартная панель всех приложений LibreOffice.

Левая панель служит для добавления в форму новых элементов управления.

Нижняя панель позволяет настраивать имеющиеся в форме элементы управления и саму форму в целом.

Для того, чтобы не пришлось закрывать Режим разработки каждый раз при внесении изменений, имеется одноименная кнопка (вторая сверху в левой панели инструментов), которая позволяет временно вернуться в обычный режим для проверки работы формы.

После этих небольших объяснений можно вернуться к созданию в форме поля со списком для элемента управления Тип рейса. В данном случае поле ввода уже присутствует в форме, поэтому добавлять его не надо. Но оно не имеет нужного типа. Для того, чтобы присвоить или изменить тип поля ввода, его нужно выделить. И здесь появляется сложность.

При выделении объекта Тип рейса выделяется не только поле ввода, но и текст, который ему сопутствует. Это происходит потому, что элементы объединены в группу. Для изменения только поля ввода надо воспользоваться пунктом частного меню объекта (по щелчку правой кнопки мыши на нем) Группировка -> Войти в группу. После этого можно выделить только поле ввода и настраивать именно его.

Частное меню и замена типа поля ввода

Частное меню и замена типа поля ввода.

На иллюстрации видно, что выделено именно поле ввода, а его частное меню дает возможность Заменить на -> Поле со списком, что и требуется. Осталось указать, какие данные будут отображаться в этом поле и как. Для этого служит окно Свойства, которое вызывается с помощью пункта частного меню Элемент управления. Внесенные изменения на иллюстрациях внизу отмечены красными овалами.

Видно, что в форме действительно появилось поле, в которое можно занести только данные из заранее составленного списка.

Окончательный вариант формы

Окончательный вариант формы.

Форма представляет собой по сути обычную страницу LibreOffice. Поэтому пункт главного меню Формат -> Страница дает доступ ко всем ее настройкам — размеру, ориентации, цвету фона и другим. Кроме того, и форма, и ее элементы имеют множество управляемых свойств, настроив которые можно получить очень неплохой результат.

Точно так же, как в других приложениях LibreOffice, в Base на страницу с формой можно добавить изображение, например, логотип — пункт главного меню Вставка -> Изображение -> Из файла (в режиме редактирования формы Изменить).

Файл с усовершенствованной базой данных можно скачать.

Сохранение

Для сохранения локальной базы данных LibreOffice Base доступен только один формат — База данных ODF. При этом вся база, включая запросы, отчеты и формы будет записана в один файл с расширением odb. Этот файл может быть свободно перенесен на другой компьютер.

Понравилась статья? Поделить с друзьями:
  • Opl ошибка игра фрагментирована
  • Opl ошибка 300
  • Openiv ошибка открытия файла
  • Opl manager ошибка 404
  • Openiv ошибка 0xc000007b