Сегодня 28 ноября, четверг ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Блог Мэтра
Блог Мэтра
Голосов: 1
Адрес блога: http://myasp.ru/
Добавлен: 2010-09-14 11:39:16
 

Импорт из Word в SQL

2012-11-14 15:20:00 (читать в оригинале)

   Недавно по работе потребовалось перегнать данные из многостраничного документа WORD с множеством таблиц, в MS SQL базу данных. Причем необходимо было перегнать не все данные, а только те строки, в которых в первом столбце встречались коды включающие в себя точку. Например такие 1.2, 1.23.1, 3.32.45 и т.д., т.е. необходимо было не просто скопировать, но и распарсить. Немного поразмыслив и полазив по интернет форумам родился совсем короткий скрипт, который всю эту рутинную работу сделал в секунды.

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

Sub ParseTable()
    Dim oTbl As Table
    Dim oRow As Row
    Dim sqlstr As String
   
   Dim Conn As New ADODB.Connection
Conn.ConnectionString = "Provider=SQLOLEDB;Data Source=SRV;database=tbl;uid=login;pwd=pass;"
sqlstr = "INSERT INTO table_test (kod, nam, per) VALUES ( '" & Left(oRow.Cells(1).Range.Text, Len(oRow.Cells(1).Range.Text) - 2) & "', '" & Left(oRow.Cells(2).Range.Text, Len(oRow.Cells(2).Range.Text) - 2) & "', '" & Left(oRow.Cells(3).Range.Text, Len(oRow.Cells(3).Range.Text) - 2) & "')"
Conn.Open
    For Each oTbl In ThisDocument.Tables
        For Each oRow In oTbl.Rows
            If oRow.Cells(1).Range.Text Like "*#.#*" Then
            Conn.Execute sqlstr
            End If
        Next
    Next oTbl
Conn.Close
End Sub

Единственно, для того чтобы работал данный скрипт необходимо добавить в References библиотеку:

Microsoft ActiveX Data Objects 2.8 Library


Тэги: vba

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Новости»
Взлеты Топ 5
Падения Топ 5


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