2017-01-30 34 views
2

Я работаю в Outlook и автоматизирую Word (2010).Хотите объект Word Document, но код по умолчанию является объектом DAO Document

Ошибка в качестве кода по умолчанию для объекта Document для DAO, но я хочу использовать объект Document для Word (оба приложения имеют объект «Document» - но это не тот же объект).

Когда я устанавливаю объект «Дим для документа», мне предоставляются два параметра «Документ», независимо от того, какой из них я выбираю, результатом является объект DAO Document со своими членами.

Пример

Dim objDoc as Document <--------- Intellisense shows two "Document" Options 

objDoc. <------------- Intellisense shows only DAO members (AllPermissions etc) 

У меня есть ссылка набор для библиотеки объектов DAO 3.6 в Слове, как я использую его в других макросов (не в этом), так что я не хочу, чтобы удалить эту библиотеку. Я запустил один из этих макросов, который должен закрыть базу данных и установить ее в никуда, но не устранил проблему.

Также попытался открыть и закрыть db в коде темы, как показано ниже.

Dim db As DAO.DataBase 
Set db = OpenDatabase("C:\Users\...........') 
db.Close 
Set db = Nothing 

Как получить код по умолчанию для обычного объекта документа Word.

+0

Что именно вы подразумеваете под «кодом по умолчанию является опция DAO»? Какую проблему вы видите? Покажите код, который вы пишете, и где возникла проблема. –

+0

Я редактировал вопрос, надеюсь, теперь яснее. –

+1

'Dim objDoc as Word.Document' –

ответ

1

Вам просто нужно указать библиотеку для Document, и я хотел бы сделать это для обоих, а не предполагая, что DAO всегда будет по умолчанию:

Dim d As DAO.Document 
'  ^^^^ 
Debug.Print d.UserName 

Dim e As Word.Document 
'  ^^^^^ 
e.AcceptAllRevisions 

Когда я делаю это с ссылки установлено, Предложения Intellisense различны для d, чем для e.

Предложения Intellisense и ссылки библиотеки объектов происходят до того, как ваш код запущен. В результате вы получите те же предложения, независимо от того, открыта ли у вас база данных или документ Word. Только в случае, если у вас нет, в начале каждого исходного файла, добавьте

Option Explicit 

Это заставит компилятор выдавать ошибку при попытке использовать необъявленные переменные, которые могут помочь с отладкой.

+0

Работает, спасибо! –