Форум поддержки пользователей LibreOffice, Apache OpenOffice

Главная категория => Base => Тема начата: гость из Access от 24 апреля 2015, 21:50

Название: Ищу поводыря...
Отправлено: гость из Access от 24 апреля 2015, 21:50
Так уж вышло, что понадобилось сделать простенькую базку именно в OpenOffice (далее - ОО). Проработав 15 лет программером Акса, думал, что ... влёт... с пол-пинка...но не тут то было.
Для начала - вопросы:
- что такое Object Browser ОО не знает?
- выпадающего списка методов/свойств объекта, соответственно, тоже нет?
- отбор записей подч.формы по изменению состояния поля со списком в главной - гемор, требующий использования макроса?
- использование таких контролов, как Дерево, ЛистВью - допустимы без танца с бубнами?
- самое главное: можно ли использовать формулы с логарифмами, квадратными корнями и т.п.?
Вообщем, нужен наставник, поводырь...гуру, который проведёт через "ямы и колдобины"...

Самое обидное, что базка будет содержать 2 (максимум 3) таблицы и пару форм, на Аксе я б её сваял за день...
Название: Re: Ищу поводыря...
Отправлено: Yakov от 25 апреля 2015, 11:14
Для начала посмотрите наш FAQ:
http://wiki.forumooo.ru/wiki/Base
и
http://wiki.services.openoffice.org/wiki/Ru/FAQ/Base
+ статьи про OOo Base:
http://myooo.ru/content/blogsection/13/97/
Название: Re: Ищу поводыря...
Отправлено: Yakov от 25 апреля 2015, 11:18
Цитата: гость из Access от 24 апреля 2015, 19:50Для начала - вопросы:
- что такое Object Browser ОО не знает?
- выпадающего списка методов/свойств объекта, соответственно, тоже нет?
Имеется в виду что-то типа этого:
http://myooo.ru/content/view/85/95/
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 12:06
2 Yakov: спасибо большое за пинок в правильном направлении!
Цитата: Yakov от 25 апреля 2015, 09:18Имеется в виду что-то типа этого:
ага - типа того. лишь бы эта надстройка не начала конфликтовать с уже установленной и похожей на неё надстройкой для VBA...
а с самым главным то как? ради чего всё и затевается - расчёт формулы с корнями и логарифмами?
Название: Re: Ищу поводыря...
Отправлено: JohnSUN от 25 апреля 2015, 12:33
LOG(d)
returns the natural logarithm (base e)

LOG10(d)
returns the logarithm (base 10)

SQRT(d)
returns the square root

http://www.hsqldb.org/doc/1.8/guide/ch09.html#N1251E
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 12:59
2 JohnSUN:
спасибо. а их можно прямо в модулях использовать, т.е. такая конструкция:
Dim a, b
a = 9
b = SQRT(a)

прокатит?
Название: Re: Ищу поводыря...
Отправлено: Yakov от 25 апреля 2015, 13:04
В модулях можно даже использовать функции Calc:
http://forumooo.ru/index.php/topic,4272.0.html
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 16:25
И может я просто не сумел найти окно отладки кода (Immediate Window), а оно есть? :-\
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 16:34
вот и первая непонятка: создаю ключевое поле таблицы, типа "счётчик" не нашёл, задал "длинное целое" с автозаполнением...а эта зараза первой записи присвоила значение 0! как-то не по пацански это...
вторая непонятка: субформу удалось создать только мастером (уж и не помню, когда я мастерами пользовался), никаких "перетянуть форму из общего списка" нет и в помине  :-\
третья непонятка: запрос-источник поля со списком, хочется, чтобы в поле выводилось, скажем, ФИО, а код записи был скрыт. Ставлю код первым и указываю в запросе "не показывать"...и поле из набора полей запроса пропадает! А где св-ва "число полей источника", "их ширина", "присоединённое поле"?
Название: Re: Ищу поводыря...
Отправлено: rami от 25 апреля 2015, 17:00
Цитата: гость из Access от 25 апреля 2015, 14:34первая непонятка: создаю ключевое поле таблицы, типа "счётчик" не нашёл, задал "длинное целое" с автозаполнением...а эта зараза первой записи присвоила значение 0! как-то не по пацански это...
Ключевое поле обычно Integer, но может быть Text или Date. Если задаёте автозаполнение, то "длинное целое" должно начаться с нуля.
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 17:11
 ???
Цитата: Yakov от 25 апреля 2015, 09:18Имеется в виду что-то типа этого
что-то не получилось у меня это установить...
никакой новой панели инструментов в окне кода не появилось, хотя, при попытке повторной установки, мне сообщается, что компонент уже установлен
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 17:23
Цитата: rami от 25 апреля 2015, 15:00Ключевое поле обычно Integer
дык, и в этом случае значение первой записи равно 0...
сделать, чтобы в поле тупо происходило приращение от 1 до..."забора" - невозможно без извратов, что-ли?
Название: Re: Ищу поводыря...
Отправлено: rami от 25 апреля 2015, 17:28
Цитата: гость из Access от 25 апреля 2015, 14:34вторая непонятка: субформу удалось создать только мастером (уж и не помню, когда я мастерами пользовался), никаких "перетянуть форму из общего списка" нет и в помине
В Base про Access лучше забыть, будет меньше головной боли. Создавайте формы мастером — это быстро и просто, открывайте на редактирование и допиливайте как надо, можно добавлять или изменять элементы, заменять один на другой, скрывать столбцы в таблице(это ответ на третью непонятку)
Цитата: гость из Access от 25 апреля 2015, 14:34третья непонятка: запрос-источник поля со списком, хочется, чтобы в поле выводилось, скажем, ФИО, а код записи был скрыт. Ставлю код первым и указываю в запросе "не показывать"...и поле из набора полей запроса пропадает! А где св-ва "число полей источника", "их ширина", "присоединённое поле"?
Поля задаются в мастере, а свойства элементов управления редактируются в форме. Если в таблице щёлкнуть по заголовку столбца, то можно изменить этот столбец.
Название: Re: Ищу поводыря...
Отправлено: rami от 25 апреля 2015, 17:36
Цитата: гость из Access от 25 апреля 2015, 15:23сделать, чтобы в поле тупо происходило приращение от 1 до..."забора" - невозможно без извратов, что-ли?
После автоматической установки в 0, замените 0(в таблице) на любое число n — следующим будет n+1
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 18:04
Цитата: rami от 25 апреля 2015, 15:36После автоматической установки в 0, замените
охохонюшки...
теперь это:
ситуация в Аксе. код не привожу, описываю словесно.
осн.форма, в ней - поле со списком "пссКод", присоединённый столбец - КодКлиент.
Подч.форма, в её запросе-источнике для поля КодКлиент указано условие отбора:
[ОснФорма]![пссКод]
На событие "обновление" поля со списком указано:
"обновить подч.форму"...
Как это тут реализовать?
Название: Re: Ищу поводыря...
Отправлено: Yakov от 25 апреля 2015, 18:51
Цитата: гость из Access от 25 апреля 2015, 15:11что-то не получилось у меня это установить...
никакой новой панели инструментов в окне кода не появилось, хотя, при попытке повторной установки, мне сообщается, что компонент уже установлен
После установки расширения необходимо закрыть все окна офиса, включая и быстрый запуск.
Тогда при новом запуске офиса расширение заработает.
Название: Re: Ищу поводыря...
Отправлено: гость из Access от 25 апреля 2015, 20:06
вроде всё закрыто... а "быстрый запуск" это где?
открываю через ярлык "OpenOffice 4.1.1", далее - выбор файла, далее в редактирование макросов... и не прибавилось там ничего
Название: Re: Ищу поводыря...
Отправлено: JohnSUN от 25 апреля 2015, 20:12
Цитата: rami от 25 апреля 2015, 17:00
Цитата: гость из Access от 25 апреля 2015, 14:34первая непонятка: создаю ключевое поле таблицы, типа "счётчик" не нашёл, задал "длинное целое" с автозаполнением...а эта зараза первой записи присвоила значение 0! как-то не по пацански это...
Ключевое поле обычно Integer, но может быть Text или Date. Если задаёте автозаполнение, то "длинное целое" должно начаться с нуля.
Цитата: гость из Access от 25 апреля 2015, 17:23
Цитата: rami от 25 апреля 2015, 15:00Ключевое поле обычно Integer
дык, и в этом случае значение первой записи равно 0...
сделать, чтобы в поле тупо происходило приращение от 1 до..."забора" - невозможно без извратов, что-ли?
Вообще-то, по той ссылке (http://url=http://www.hsqldb.org/doc/1.8/guide/ch09.html#alter_table-section), что я дал, можно найти и такой текст
ЦитироватьALTER TABLE <tablename> ALTER COLUMN <columnname>
   RESTART WITH <new sequence value>
This form is used exclusively for IDENTITY columns and changes the next automatic value for the identity sequence.
Вводятся и выполняются такие команды через меню Сервис-SQL. В качестве стартового (или очередного используемого) можно для уже существующего автоинкремента установить и единицу, и сотню, и всё что угодно...
Цитата: гость из Access от 25 апреля 2015, 16:34
вторая непонятка: субформу удалось создать только мастером (уж и не помню, когда я мастерами пользовался), никаких "перетянуть форму из общего списка" нет и в помине  :-\
Для работы со структурой формы, её полями и субформами, достаточно открыть окно Навигатора форм (не путать с просто Навигатором F5) - его открывает отдельная кнопка на панели инструментов Дизайн формы. Там из контекстного меню и выбираются нужные команды. Например, Создать-Форма (доступна при правом клике на имени существующей формы). И да, драг-н-дроп в конструкторе форм не работает - спросом не пользуется (за многие годы это было первое упоминание о его нужности)
Цитата: гость из Access от 25 апреля 2015, 16:34
третья непонятка: запрос-источник поля со списком, хочется, чтобы в поле выводилось, скажем, ФИО, а код записи был скрыт. Ставлю код первым и указываю в запросе "не показывать"...и поле из набора полей запроса пропадает! А где св-ва "число полей источника", "их ширина", "присоединённое поле"?
Первым полем (нулевым по порядку) в запросе должно быть значение, отображаемое в списке и после выбора отображаемое в поле. Дальше идет произвольное количество колонок, в одной из которых располагается код записи. Номер этой колонки и указывается как Связываемое поле. Что касается "число полей источника", "их ширина" - число полей источника всегда два - нулевое (отображаемое) и n (связываемое, по умолчанию 1). Ширина списка соответствует отображаемой ширине поля. Отображать в выпадающем списке значения, которые не будут видны после его закрытия - моветон. Все, кто считают иначе, приглашаются к самостоятельной разработке других элементов управления.
О каком из "присоединённых полей" шла речь?
Цитата: гость из Access от 25 апреля 2015, 18:04
теперь это: ситуация в Аксе... ... Как это тут реализовать?
Как насчет такой последовательности действий: F1 - Содержание - Макросы и программирование - Инструкции - Access2Base и там клик на ссылку http://www.access2base.com? Для человека, который долго работал со справкой по Access'у, английский язык вроде бы не должен быть препятствием, нет?

UPD.Небольшое уточнение насчет не работающего перетащи-и-брось. Работает, но не из общего списка, а из формы, открытой для редактирования.
Открываем через Изменить обе формы - будущую Главную и Подчинённую - в режиме редактирования, с помощью инструмента Выделить (первая кнопка на панели Элементы управления или панели Дизайн формы) выделяем нужные (или все) поля подчиненной формы и перетаскиваем в окно редактирования Главной формы. В окне Навигатора форм обе формы получают равнозначное положение - нужно их упорядочить перетащив одну на другую. И наконец в свойствах подчиненной формы нужно корректно заполнить поля Связь с главным полем и Связь с подчинённым полем.
Название: Re: Ищу поводыря...
Отправлено: JohnSUN от 25 апреля 2015, 20:20
Цитата: гость из Access от 25 апреля 2015, 12:59
а их можно прямо в модулях использовать, т.е. такая конструкция:
Dim a, b
a = 9
b = SQRT(a)

прокатит?
1. Нет, нельзя - функции перечисленные в Hsqldb User Guide (http://www.hsqldb.org/doc/1.8/guide/ch09.html#N1251E) используются в SQL-запросах к базам
2. Нет, не прокатит. Если верить Справке, то функция для вычисления квадратного корня в коде модуля называется Sqr
Sub ExampleSqr
Dim iVar As Single
    iVar = 36
    MsgBox Sqr(iVar)
End Sub