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

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

22 Июль 2019, 20:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Копирование из calc базу openoffice base  (Прочитано 13161 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ksdon
Новичок
*
Offline Offline

Сообщений: 1


« Стартовое сообщение: 22 Май 2012, 20:34 »

Здравствуйте, очень прошу помощи.
В теме новичок, но необходимо срочно сделать следующее: имеется некий шаблон таблицы calc, в котором забиваются паспортные данные (ФИО, адрес и т.д.). Так вот, надо, чтобы из конкретных ячеек таблицы информация копировалась в зарегистрированную базу. Просто шаблон в base использовать не получается, так как приходится работать одновременно с несколькими такими формами.
Есть информация в книге "Изучение программирования макросов для электронных таблиц в OpenOffice.org" Марка Александра Бейна:

Код:
Dim oRangeas Object
Dim oSheetas Object
Dim oCellas Object
Dim surnameas string
Dim firstnameas string
Dim titleas string
Dim detailsas string
Dim ras Integer
oRange= thisComponent.getCurrentSelection.getRangeAddress
r= oRange.startRow
oSheet= thisComponent.CurrentSelection.getSpreadsheet
surname= ucase(oSheet.getCellByPosition(0, r).String)
firstname= ucase(oSheet.getCellByPosition(1, r).String)
If surname= ""Or firstname= ""Then
msgbox "Пожалуйста выберите строку, содержащую имя"
stop
End If
While title= ""
title= inputbox("Введите название случая (введите 0 чтобы остановиться)")
Wend
If title= 0Then
stop
End If
While details= ""
details= inputbox("Введите подробности (введите 0 чтобы остановиться)")
Wend
If details= 0Then
stop
End If
create_case(surname, firstname, title, details)
End Sub

Sub create_case(iSurnameas String, iFirstNameas String, _
iTitleas String, iDetailsas String)
Dim idas Integer
Dim oSqlas String
Dim oResultas Object
Dim oStatementas Object
Dim dbas object
db= connect_to_database("ppi")
id= investigator_id(db, iSurname, iFirstName)
oSql= "insert into ""cases"" "_
& "(""TITLE"",""DETAILS"",""INVESTIGATOR_ID"") values "_
& "('"& iTitle& "','"& iDetails& "',"& id& ")"
oStatement= db.createStatement
oResult= oStatement.executeQuery(oSql)
disconnect_from_database(db)
End Sub

Но здесь предлагается ввод информации через выделение ячеек и рукописным вводом в форму, а мне нужно все проще: из конкретных, фиксированных ячеек. Вот этого у меня и не получается почему-то сделать.
Заранее спасибо.
« Последнее редактирование: 23 Май 2012, 06:36 от Helen » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 22 Май 2012, 21:39 »

Добро пожаловать на форум!
Не совсем понятно с "конкретными ячейками". Имеется в виду, что данные раскиданы по листу в беспорядке, а не идут строка за строкой в виде таблицы?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #2: 23 Май 2012, 14:29 »

Что-то вроде такого?
Из таблицы Calc выделить строки с данными и макросом вставить в таблицу base?


[вложение удалено Администратором]
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #3: 23 Май 2012, 14:57 »

А если из конкретных ячеек, то ещё проще.
Одно плохо. Их все придется отдельно указывать.
« Последнее редактирование: 23 Май 2012, 15:01 от Hasim » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!