powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word и Access - это реально?
11 сообщений из 11, страница 1 из 1
Word и Access - это реально?
    #34134927
Koriolan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые профессионалы и гуру от Visual Basic!!! :)

Нужна Ваша профессиональная консультация и помощь в решении такой вот задачки: Имеется база данных Аccess (base.mdb) В ней таблица Table с тремя полями: первое – Id (ключевое), второе – Text (поле МЕМО) и третье, роль которого сейчас неважна. Есть документ Word, находящийся в открытом состоянии и в нем пользователь выделяет фрагмент текста (фрагменты небольшие, не больше одного-двух абзацев, поэтому для МЕМО это вполне посильно). Необходимо написать в Word подобие макроса на кнопку, которая при нажатии вырезает текст из документа и вставляет в качестве новой записи в поле Text указанной базы данных. Как решить эту проблему?
Дело в том, что простые макросы по передаче текста из одного открытого документа в другой я писал, а вот для ситуации, когда необходимо передать таким образом из одного приложения в другое – еще нет.
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34135372
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
совет дилетанта :
обмен данными между приложениями OFFICE это козырь майкрософт.
фактически тебе надо сделать всего две операции
1. вырезать текст из WORD в буфер
2. вставить текст из буфера в ACCESS
включи макрорекордер проделай эти действия по идее получишь макрос
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34135412
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Word надо подключить библиотеку "Microsoft ActiveX Data Objects Library"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub f()
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim strSource As String
    MsgBox Selection
    strSource = "C:\Curs.mdb" ' путь к файлу
    strCnnString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
        & "Data Source=" & strSource _
        & ";Persist Security Info=False"


    cnn.Open strCnnString 'открываем базу
    rst.Open "SELECT * FROM Curs", cnn, adOpenStatic, adLockOptimistic 'открываем recordset 
    
    rst.AddNew 'добавляем запись
    rst.Fields( 1 ) = Selection 'заносим в первый столбец выделенный фрагмент
    rst.Update 'обновляем 
    
    rst.Close
    cnn.Close
    
    Set rst = Nothing
    Set cnn = Nothing
End Sub
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34138077
Koriolan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nosorogсовет дилетанта :
обмен данными между приложениями OFFICE это козырь майкрософт.
фактически тебе надо сделать всего две операции
1. вырезать текст из WORD в буфер
2. вставить текст из буфера в ACCESS
включи макрорекордер проделай эти действия по идее получишь макрос

Дело в том, что макрорекордер записывает события, выполняемые пользователем только в пределах одного приложения. Как только мы выходим за его пределы, запись приостанавливается. Увы!
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34138249
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Koriolan nosorogсовет дилетанта :
обмен данными между приложениями OFFICE это козырь майкрософт.
фактически тебе надо сделать всего две операции
1. вырезать текст из WORD в буфер
2. вставить текст из буфера в ACCESS
включи макрорекордер проделай эти действия по идее получишь макрос

Дело в том, что макрорекордер записывает события, выполняемые пользователем только в пределах одного приложения. Как только мы выходим за его пределы, запись приостанавливается. Увы!
вот vkdor же показал пример
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34138866
Koriolan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbekвот vkdor же показал пример
Но это не макрос, записанный макрорекордером, о котором Вы говорили!
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34138868
Koriolan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodorВ Word надо подключить библиотеку "Microsoft ActiveX Data Objects Library"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub f()
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim strSource As String
    MsgBox Selection
    strSource = "C:\Curs.mdb" ' путь к файлу
    strCnnString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
        & "Data Source=" & strSource _
        & ";Persist Security Info=False"


    cnn.Open strCnnString 'открываем базу
    rst.Open "SELECT * FROM Curs", cnn, adOpenStatic, adLockOptimistic 'открываем recordset 
    
    rst.AddNew 'добавляем запись
    rst.Fields( 1 ) = Selection 'заносим в первый столбец выделенный фрагмент
    rst.Update 'обновляем 
    
    rst.Close
    cnn.Close
    
    Set rst = Nothing
    Set cnn = Nothing
End Sub


Отлично, спасибо – это именно то, что я искал. Достаточно просто и изящно.
Пытаясь развить этот код, сделал следующее:
В Word открываю нужный документ. Предварительно к шаблону Normal прикрепил панель инструментов с несколькими кнопками. Назначение первой из них: выделенный текст присвоить определенной переменной типа String. (переменная zagolovok ).
Далее пользователь выделяет следующий кусок текста и нажимает следующую по порядку кнопку. Выделенный текст присваивается еще одной переменной ( text ).
И, наконец, третья кнопка содержимое обеих переменных заносит в соответствующие поля базы данных: zagolovok – в поле Title , a text – в поле Text и обнуляет значение переменных для следующей работы.
Так, по крайней мере, мне представился этот алгоритм. Может, он не рационален с точки зрения программирования, тогда подскажите варианты.
Еще один вопросик, связанный с рассматриваемой ситуацией. Можно ли переделать данный код таким образом, чтобы из документа Word перемещать в поле объектов OLE выделенное изображение. Такая практическая ситуация, увы, возникает и хотелось бы автоматизировать это дело.
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34855399
Koriolan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, что возвращаюсь к этой давнишней теме, но обстоятельства вынуждают. Я использовал приведенный выше пример и он у меня замечтально работал с Office 2003. Получилось так, что при переустановке Office шаблон, где хранился этот код был утерян. Я вновь его поставил, но с Office 2007 он не изъявляет желания работать. Выдается сообщение об ошибке следующего содержания.
В режиме отладки показана строка
Код: plaintext
rst.Update
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34855633
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зайдите в Access
в режим конструктора таблицы "Афоризм"
и выставьте у поля Text значение "Пустые строки" - "Да"
а заодно поменяйте имя этого поля, не нужно называть поля словами типа: Text, Name, Count и т.д. (м.б. глюки)
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34858614
Koriolan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Касаемо имен полей согласен! Пропустил этот факт. Но даже внеся описанные выше изменения, ситуацию не исправил - выводится то же самое сообщение. И, к стати, раньше, когда работал с этой конструкицей под Word 2003 проблем не возникало.
...
Рейтинг: 0 / 0
Word и Access - это реально?
    #34861705
Koriolan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи! Подскажите, где я и что проморгал. Интересно ведь?! :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Word и Access - это реально?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]