Я показываю сообщение электронной почты в Outlook, используя значения из формы MS Access.Я хотел бы, чтобы пользователи имели возможность изменять шаблон сообщения без необходимости редактировать код, поэтому я пытаюсь создавать шаблоны в текстовом формате.В текстовом формате я окружаю имена элементов управления формой %%.Затем в обработчике кнопки _Click формы доступа после чтения в текстовом файле я использовал объект RegExp:
Dim re As New RegExp
re.Pattern = "(%%)([A-Za-z0-9]+)(%%)"
re.Global = True
msg = re.Replace(template, " "" & $2 & "" ")
для замены (%%) ([A-Za-z0-9]+) (%%) с "& $ 2 &".Была надежда, что это позволит получить значения элементов управления из формы.
Затем я отображаю сообщение в Outlook, используя
Dim objOutlook As Outlook.Application
Dim objEmail As Outlook.MailItem
Set objOutlook = CreateObject("Outlook.application")
Set objEmail = objOutlook.CreateItem(olMailItem)
With objEmail
.To = emailAdd
.body = msg
.Display
End With
К сожалению, «& controlName.value &» отображается всообщение вместо значения элемента управления.Кроме того, хотя для .Global установлено значение True, заменяется только первое совпадение.
Как получить VBA для предварительной глобальной замены и заполнения значения элементов управления?