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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2016, 23:20   #1
kkep
 
Регистрация: 23.08.2016
Сообщений: 7
По умолчанию Загрузка OpenDocument в Access

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

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


Пробовал то что нарыл в интернете:
set wordapp=createobject("word.applicat ion")
set worddoc=wordapp.ocuments.open (filename)
for i=1 to worddoc.tables.count
set tab=worddoc.tables(i)
if i mod 1 = 1 then
ordernum=split(tab.cell(2,2),chr(7) )(0)
else
for j = 2 to tab.rows.count
strSQL = "INSERT INTO datatable (order, name, date, content, fdate, fcontent)" & _
"VALUES (" & ordernum & ",'" & _
split(tab.cell(j,1),chr(7))(0) & "','" & _
split(tab.cell(j,2),chr(7))(0) & "','" & _
split(tab.cell(j,3),chr(7))(0) & "','" & _
split(tab.cell(j,4),chr(7))(0) & "','" & _
split(tab.cell(j,5),chr(7))(0) & "')"
docmd.runsql srtSQL
next j
endif
next i

Но на строке set tab=worddoc.tables(i) возникает ошибка.

Вот пример файла
Вложения
Тип файла: zip 123.zip (11.8 Кб, 16 просмотров)
kkep вне форума Ответить с цитированием
Старый 24.08.2016, 20:17   #2
kkep
 
Регистрация: 23.08.2016
Сообщений: 7
По умолчанию

готов к материальной благодарности в размере 1000 рублей.
kkep вне форума Ответить с цитированием
Старый 24.08.2016, 20:52   #3
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Цитата:
Но на строке set tab=worddoc.tables(i) возникает ошибка.
Какая ошибка? ... измените наименование переменой tab
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 24.08.2016, 20:54   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Microsoft Word 2010 ваш файл 123.odt отрыть не смог (просто открыть, без всякой программы).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.08.2016, 22:45   #5
kkep
 
Регистрация: 23.08.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
Какая ошибка? ... измените наименование переменой tab
Тогда он ругается что не описан тип. Я не знаю каким типом толжена быть эта переменная
kkep вне форума Ответить с цитированием
Старый 24.08.2016, 22:46   #6
kkep
 
Регистрация: 23.08.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Microsoft Word 2010 ваш файл 123.odt отрыть не смог (просто открыть, без всякой программы).
У меня открывает. Сначала ругается, нажимаешь да, и он открывает. Хоть просто вордом хоть из акцесса
kkep вне форума Ответить с цитированием
Старый 24.08.2016, 22:57   #7
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Цитата:
Тогда он ругается что не описан тип. Я не знаю каким типом толжена быть эта переменная
Код:
dim tabl as object
...
set tabl=worddoc.tables(i)
или используйте with
Код:
for i=1 to worddoc.tables.count
 with worddoc.tables(i)
   if i mod 1 = 1 then
     ordernum=split(.cell(2,2),chr(7) )(0)
   else
     for j = 2 to .rows.count
       strSQL = "INSERT INTO datatable (order, name, date, content, fdate, fcontent)" & _
       "VALUES (" & ordernum & ",'" & _
       split(.cell(j,1),chr(7))(0) & "','" & _
       split(.cell(j,2),chr(7))(0) & "','" & _
       split(.cell(j,3),chr(7))(0) & "','" & _
       split(.cell(j,4),chr(7))(0) & "','" & _
       split(.cell(j,5),chr(7))(0) & "')"
       docmd.runsql srtSQL
     next j 
   endif
 end with
next i
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 25.08.2016, 11:57   #8
kkep
 
Регистрация: 23.08.2016
Сообщений: 7
По умолчанию

Не так не так не работает. Пишет что пустой ордернум и как следствие скл запрос ошибочный
kkep вне форума Ответить с цитированием
Старый 25.08.2016, 12:24   #9
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
Не так не так не работает.
Работает согласно коду))
Код:
Пишет что пустой ордернум и как следствие скл запрос ошибочный
Используйте волшебную кнопку F8 для отладки)) ... каким должно быть значение i, чтоб остаток от его деления на 1 равнялся 1 ?))
...дальше не интересно
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 28.08.2016, 17:25   #10
kkep
 
Регистрация: 23.08.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
Код:
Не так не так не работает.
Работает согласно коду))
Код:
Пишет что пустой ордернум и как следствие скл запрос ошибочный
Используйте волшебную кнопку F8 для отладки)) ... каким должно быть значение i, чтоб остаток от его деления на 1 равнялся 1 ?))
...дальше не интересно
Спасибо за то что показали на мою тупость Пришлось еще не
много повозиться чтоб при загрузке убирались ' , т.к. из-за них ломался скл-запрос, но вообщем задача решена.
kkep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файла БД Access в проект(DataGridView) vb 2012 Xezon Общие вопросы .NET 0 27.07.2015 20:00
Загрузка данных из Excel в Access Zorg Microsoft Office Excel 12 02.08.2012 18:25
Загрузка БД Access в Excel maksimka2112 Microsoft Office Excel 7 07.05.2011 17:39
Загрузка данных из Access в TDBComboBox KiLLiR БД в Delphi 6 21.01.2009 13:19