У меня есть база данных доступа, и я хочу экспортировать поля из ОДНОЙ выделенной строки в текстовый документ и отправить его получателю по электронной почте.
Из базы данных Access я хочу экспортировать следующие поля: инициалы (символьная строка), HospNo (символьная и числовая строка), дата, комментарий (символьная строка)
И я хочу экспортировать эти поля из выбранной мной строки в текстовый документ c: \ test.docx с 4 объектами MERGEFIELD, отмеченными закладками как Inits, HosNumber, ScanDate, Diagnosis соответственно.
Я думаю, что MailMerge - это решение, и поэтому я использовал Mergefileds в Word. Но я очень мало знаю VBA и не знаю, с чего начать.
У меня на компьютере установлен Office 2010.
Достаточно ли этой информации для объяснения проблемы?
2 ответа
С очень высокого уровня вам, вероятно, понадобится создать набор записей в VBA, содержащий только одну запись, которую вы хотите экспортировать. Затем вы можете использовать этот набор записей в качестве источника для вашего mailmerge.
Я никогда не делал mailmerges, но это должно помочь вам:
Dim db as Database
Dim rec as Recordset
Set db = CurrentDB
Set rec = db.OpenRecordset("SELECT Initials, HospNo, [date], comment FROM MyTableName WHERE SomeFilterCriteria")
'Mailmerge based on "rec"
Очевидно, вам нужно изменить MyTableName и MyFilterCriteria на основе вашей конкретной информации, вы не указали нам имя таблицы или то, как вы хотите определить, какую запись данных для mailmerge.
Либо так, либо вы можете создать запрос, настроить mailmerge из запроса, а затем добавить в запрос фильтры, указывающие на вашу форму. В строке Criteria в запросе (если вы откроете его в представлении «Дизайн») вы должны указать что-то вроде
[Forms]![MyFormName].[MyFieldName]
Кроме того, если у вас есть возможность, измените имя поля даты. Слово «дата» - зарезервированное слово, что означает, что вы должны заключить его в квадратные скобки, чтобы Access не считал его встроенной командой. Измените название поля на scandate или что-то в этом роде, чтобы избежать проблем в будущем.
Если вы уже работаете с MailMerge, вы можете просто выбрать строку в Access и использовать функцию слияния слов под ссылкой на внешние данные. Если вы ищете более автоматизированную процедуру, я считаю, что вам понадобится код.
Похожие вопросы
Новые вопросы
vba
Visual Basic для приложений (VBA) - это управляемый событиями объектно-ориентированный язык программирования для написания макросов, используемый для всего пакета Office, а также для других приложений. VBA не эквивалентен VB.NET или VBS; если вы работаете в Visual Studio, используйте [vb.net]. Если ваш вопрос конкретно касается программирования любого приложения MS Office, также используйте соответствующий тег: [excel], [ms-access], [ms-word], [outlook] или [ms-project].