Так уж вышло, что понадобилось сделать простенькую базку именно в OpenOffice (далее - ОО). Проработав 15 лет программером Акса, думал, что ... влёт... с пол-пинка...но не тут то было.
Для начала - вопросы:
- что такое Object Browser ОО не знает?
- выпадающего списка методов/свойств объекта, соответственно, тоже нет?
- отбор записей подч.формы по изменению состояния поля со списком в главной - гемор, требующий использования макроса?
- использование таких контролов, как Дерево, ЛистВью - допустимы без танца с бубнами?
- самое главное: можно ли использовать формулы с логарифмами, квадратными корнями и т.п.?
Вообщем, нужен наставник, поводырь...гуру, который проведёт через "ямы и колдобины"...
Самое обидное, что базка будет содержать 2 (максимум 3) таблицы и пару форм, на Аксе я б её сваял за день...
Для начала посмотрите наш 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/
Цитата: гость из Access от 24 апреля 2015, 19:50Для начала - вопросы:
- что такое Object Browser ОО не знает?
- выпадающего списка методов/свойств объекта, соответственно, тоже нет?
Имеется в виду что-то типа этого:
http://myooo.ru/content/view/85/95/
2 Yakov: спасибо большое за пинок в правильном направлении!
Цитата: Yakov от 25 апреля 2015, 09:18Имеется в виду что-то типа этого:
ага - типа того. лишь бы эта надстройка не начала конфликтовать с уже установленной и похожей на неё надстройкой для VBA...
а с самым главным то как? ради чего всё и затевается - расчёт формулы с корнями и логарифмами?
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
2 JohnSUN:
спасибо. а их можно прямо в модулях использовать, т.е. такая конструкция:
Dim a, b
a = 9
b = SQRT(a)
прокатит?
В модулях можно даже использовать функции Calc:
http://forumooo.ru/index.php/topic,4272.0.html
И может я просто не сумел найти окно отладки кода (Immediate Window), а оно есть? :-\
вот и первая непонятка: создаю ключевое поле таблицы, типа "счётчик" не нашёл, задал "длинное целое" с автозаполнением...а эта зараза первой записи присвоила значение 0! как-то не по пацански это...
вторая непонятка: субформу удалось создать только мастером (уж и не помню, когда я мастерами пользовался), никаких "перетянуть форму из общего списка" нет и в помине :-\
третья непонятка: запрос-источник поля со списком, хочется, чтобы в поле выводилось, скажем, ФИО, а код записи был скрыт. Ставлю код первым и указываю в запросе "не показывать"...и поле из набора полей запроса пропадает! А где св-ва "число полей источника", "их ширина", "присоединённое поле"?
Цитата: гость из Access от 25 апреля 2015, 14:34первая непонятка: создаю ключевое поле таблицы, типа "счётчик" не нашёл, задал "длинное целое" с автозаполнением...а эта зараза первой записи присвоила значение 0! как-то не по пацански это...
Ключевое поле обычно Integer, но может быть Text или Date. Если задаёте автозаполнение, то "длинное целое" должно начаться с нуля.
???
Цитата: Yakov от 25 апреля 2015, 09:18Имеется в виду что-то типа этого
что-то не получилось у меня это установить...
никакой новой панели инструментов в окне кода не появилось, хотя, при попытке повторной установки, мне сообщается, что компонент уже установлен
Цитата: rami от 25 апреля 2015, 15:00Ключевое поле обычно Integer
дык, и в этом случае значение первой записи равно 0...
сделать, чтобы в поле тупо происходило приращение от 1 до..."забора" - невозможно без извратов, что-ли?
Цитата: гость из Access от 25 апреля 2015, 14:34вторая непонятка: субформу удалось создать только мастером (уж и не помню, когда я мастерами пользовался), никаких "перетянуть форму из общего списка" нет и в помине
В Base про Access лучше забыть, будет меньше головной боли. Создавайте формы мастером — это быстро и просто, открывайте на редактирование и допиливайте как надо, можно добавлять или изменять элементы, заменять один на другой, скрывать столбцы в таблице(это ответ на третью непонятку)
Цитата: гость из Access от 25 апреля 2015, 14:34третья непонятка: запрос-источник поля со списком, хочется, чтобы в поле выводилось, скажем, ФИО, а код записи был скрыт. Ставлю код первым и указываю в запросе "не показывать"...и поле из набора полей запроса пропадает! А где св-ва "число полей источника", "их ширина", "присоединённое поле"?
Поля задаются в мастере, а свойства элементов управления редактируются в форме. Если в таблице щёлкнуть по заголовку столбца, то можно изменить этот столбец.
Цитата: гость из Access от 25 апреля 2015, 15:23сделать, чтобы в поле тупо происходило приращение от 1 до..."забора" - невозможно без извратов, что-ли?
После автоматической установки в
0, замените
0(в таблице) на любое число
n — следующим будет
n+1
Цитата: rami от 25 апреля 2015, 15:36После автоматической установки в 0, замените
охохонюшки...
теперь это:
ситуация в Аксе. код не привожу, описываю словесно.
осн.форма, в ней - поле со списком "пссКод", присоединённый столбец - КодКлиент.
Подч.форма, в её запросе-источнике для поля КодКлиент указано условие отбора:
[ОснФорма]![пссКод]
На событие "обновление" поля со списком указано:
"обновить подч.форму"...
Как это тут реализовать?
Цитата: гость из Access от 25 апреля 2015, 15:11что-то не получилось у меня это установить...
никакой новой панели инструментов в окне кода не появилось, хотя, при попытке повторной установки, мне сообщается, что компонент уже установлен
После установки расширения необходимо закрыть все окна офиса, включая и быстрый запуск.
Тогда при новом запуске офиса расширение заработает.
вроде всё закрыто... а "быстрый запуск" это где?
открываю через ярлык "OpenOffice 4.1.1", далее - выбор файла, далее в редактирование макросов... и не прибавилось там ничего
Цитата: 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.Небольшое уточнение насчет не работающего перетащи-и-брось. Работает, но не из общего списка, а из формы, открытой для редактирования.
Открываем через
Изменить обе формы - будущую Главную и Подчинённую - в режиме редактирования, с помощью инструмента
Выделить (первая кнопка на панели Элементы управления или панели Дизайн формы) выделяем нужные (или все) поля подчиненной формы и перетаскиваем в окно редактирования Главной формы. В окне Навигатора форм обе формы получают равнозначное положение - нужно их упорядочить перетащив одну на другую. И наконец в свойствах подчиненной формы нужно корректно заполнить поля
Связь с главным полем и
Связь с подчинённым полем.
Цитата: гость из 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