Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Управление в маркетинге средствами электронной почты. Учебное пособие
.pdf
61
Private Sub btnDelete_Click()
iCn.Delete
Set iCn = cCn.GetPrevious
тстФамилия.Text = iCn.LastName
тстИмя.Text = iCn.FirstName
тстОтчество.Text = iCn.MiddleName
txtNickName.Text = iCn.NickName
спрОрганизация.Value = iCn.CompanyName
If iCn.Gender = olMale Then
кнрМ = True
ElseIf iCn.Gender = olFemale Then
кнрЖ = True
Else
кнрНетИнформации = True
End If
End Sub
Private Sub btnNew_Click()
‘При создании нового Контакта текстовые поля очищаются от информации и создается новый Контакт. Фокус передается в первое текстовое
поле — в поле Фамилия
тстФамилия = “”
тстИмя = “”
тстОтчество = “”
txtNickName = “”
кнрНетИнформации.Value = True
Set iCn = CreateItem(olContactItem)
тстФамилия.SetFocus
End Sub
Private Sub bntNext_Click()
‘Если выбрана не последняя запись, то осуществляется перемещение к
следующей записи

62
If i < cCn.Count Then
Set iCn = cCn.GetNext
‘Если свойства текущего Контакта определены, то заполняются соответствующие текстовые поля пользовательской формы
If Len(iCn.FirstName) > 0 Then тстИмя.Text = iCn.FirstName
If Len(iCn.MiddleName) > 0 Then тстОтчество.Text = iCn.MiddleName
If Len(iCn.NickName) > 0 Then txtNickName.Text = iCn.NickName
спрОрганизация.Value = iCn.CompanyName
‘свойство Gender может быть и не определено
If iCn.Gender = olMale Then
кнрМ = True
ElseIf iCn.Gender = olFemale Then
кнрЖ = True
Else
кнрНетИнформации = True
End If
Else
MsgBox “Достигнут конец коллекции”
End If
i = i + 1
тстЗаписьТекущая.Text = Str(i)
End Sub
Private Sub btnFirst_Click()
‘щелчок по кнопке делает активной первую запись и информацию о свойствах Контакта выводит в пользовательскую форму
Set iCn = cCn.GetFirst
i = 1
'Call мкрЗаполнитьФорму
тстФамилия.Text = iCn.LastName
тстИмя.Text = iCn.FirstName
тстОтчество.Text = iCn.MiddleName
txtNickName.Text = iCn.NickName
спрОрганизация.Value = iCn.CompanyName

63
If iCn.Gender = olMale Then
кнрМ = True
ElseIf iCn.Gender = olFemale Then
кнрЖ = True
Else
кнрНетИнформации = True
End If
End Sub
Private Sub btnLast_Click()
‘щелчок по кнопке делает активной последнюю запись и информацию
о свойствах Контакта выводит в пользовательскую форму
Set iCn = cCn.GetLast
'Call мкрЗаполнитьФорму
тстФамилия.Text = iCn.LastName
тстИмя.Text = iCn.FirstName
тстОтчество.Text = iCn.MiddleName
txtNickName.Text = iCn.NickName
спрОрганизация.Value = iCn.CompanyName
If iCn.Gender = olMale Then
кнрМ = True
ElseIf iCn.Gender = olFemale Then
кнрЖ = True
Else
кнрНетИнформации = True
End If
End Sub
Private Sub btnPrevios_Click()
‘обеспечивает перемещение к предыдущей записи и вывод информации
о свойствах контакта в поля ‘пользовательской формы
If i <= 1 Then
MsgBox “Достигнуто начало коллекции”
Else

64
Set iCn = cCn.GetPrevious
тстФамилия = iCn.LastName
тстИмя = iCn.FirstName
тстОтчество = iCn.MiddleName
txtNickName = iCn.NickName
спрОрганизация.Value = iCn.CompanyName
If iCn.Gender = olMale Then
кнрМ = True
ElseIf iCn.Gender = olFemale Then
кнрЖ = True
Else
кнрНетИнформации = True
End If
End If
End Sub
Private Sub btnSave_Click()
‘обеспечивает сохранение информации полей формы в свойствах созданного контакта
‘Set iCn = cCn.GetNext
iCn.LastName = тстФамилия
iCn.FirstName = тстИмя
iCn.MiddleName = тстОтчество
iCn.NickName = txtNickName
iCn.CompanyName = спрОрганизация.Value
If кнрМ Then
iCn.Gender = olMale
ElseIf кнрЖ Then
iCn.Gender = olFemale
Else
iCn.Gender = olUnspecied
End If
iCn.Save
End Sub

65
Private Sub CommandButton4_Click()
Dim myStr As String
myStr = «myStr»
cCn.GetFirst
txtNickName = InputBox(«txtNickName»)
MsgBox “myStr Type “ & VarType(myStr)
MsgBox “txtNickName Type “ & VarType(txtNickName)
MsgBox “NickName “ & txtNickName
Set iCn = cCn.Find(”[NickName]=””txtNickName”””)
If iCn Is Nothing Then
MsgBox ”NickName not found”
Else
MsgBox iCn.NickName
End If
End Sub
Private Sub CommandButton5_Click()
Call мкрПоказатьКонтакт
End Sub
Private Sub UserForm_Initialize()
‘Блок присваивания значений переменным при инициализации пользовательской формы
Set aOl = New Outlook.Application
Set oNS = aOl.GetNamespace(«MAPI»)
Set oFCn = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»).
Folders(«Контакты»)_.Folders(«Проекты»).Folders(«Грибоедова»)
Set cCn = oFCn.items
Set iCn = cCn.GetFirst
‘определение свойств элемента управления Поле со списком
спрОрганизация.AddItem “”

66
спрОрганизация.AddItem “МАМАРМЕН”
спрОрганизация.AddItem “21 век”
спрОрганизация.AddItem “МИПП”
спрОрганизация.AddItem “РГГУ”
тстФамилия = iCn.LastName
тстИмя = iCn.FirstName
тстОтчество.Text = iCn.MiddleName
txtNickName = iCn.NickName
спрОрганизация.Value = iCn.CompanyName
If iCn.Gender = olMale Then
кнрМ = True
ElseIf iCn.Gender = olFemale Then
кнрЖ = True
Else
кнрНетИнформации = True
End If
тстЗаписейВсего.Text = cCn.Count
‘Передача управления первому полю пользовательской формы
тстФамилия.SetFocus
End Sub
Private Sub кнДобавитьИмя_Click()
‘если свойство Короткое имя не определено, то оно определяется именем из свойства Контакта
‘полное имя
txtNickName.Text = тстИмя.Text
End Sub
Private Sub кнДобавитьИмяОтчество_Click()
‘если свойство Короткое имя не определено, то оно определяется именем и отчеством из свойства ‘Контакта полное имя
txtNickName.Text = тстИмя.Text & “ “ & тстОтчество.Text
End Sub
Private Sub кнДобавитьОтчество_Click()
‘если свойство Короткое имя не определено, то оно может быть определено отчеством из свойства ‘Контакта полное имя

67
txtNickName = тстОтчество.Text
End Sub
Sub мкрПоказатьКонтакт(iCn)
‘процедура, обеспечивающая заполнение полей формы из свойств текущего контакта
тстФамилия.Text = iCn.LastName
тстИмя.Text = iCn.FirstName
тстОтчество.Text = iCn.MiddleName
txtNickName.Text = iCn.NickName
спрОрганизация.Value = iCn.CompanyName
If iCn.Gender = olMale Then
кнрМ = True
'кнрЖ = False
ElseIf iCn.Gender = olFemale Then
'кнрМ = False
кнрЖ = True
Else
кнрНетИнформации = True
End If
End Sub
Вкачествеупражненияможнопорекомендоватьпопытаться
выделитьчастикода,которыемогутбытьопределеныкаксамостоятельныепроцедуры.

68
Получениеданныхдля информационнойсистемыпредставляетсобойтрудоемкийидорогостоящийпроцесс.Здесьнужныи
определеннаяквалификация,посколькунужно уметьправильно
оценитьполезностьданныхдляобеспечениябизнес-процессов,и
устойчивыенавыкивработесприложениями.Носамаябольшая
проблема — заставить потенциального клиента предоставить
возможностьс ним связаться.В нашемслучае наибольший интерес представляетвозможность осуществлять коммуникации с
клиентомсредствамиэлектроннойпочты.
Электронные визитные карточки
Видимо,лучшимспособомсообщитькому-либоинформацию
осебе будетотправить электроннуювизитную карточку.Чтобы
создать электронную визитную карточку, необходимо открыть
соответствующийКонтакт,после чего сохранить егос расширениемvcf(vCard).ДалееэлектроннаявизитнаякарточкавкладываетсявСообщение.Получателюостаетсясохранитьеенасвоем
компьютере,послечегоперетащитьмышьювпапкуКонтакты.
Контактов
Работасэлектроннымивизитнымикарточкамивсемхороша.
Нопроблемавтом,чтосегодня,ксожалению,далеконевсеработаютсOutlook.Поэтомунеобходимболееуниверсальныйспособ
полученияинформации.Мыужеотмечали,что,есликлиентзаинтересованввашихуслугам,необходимовненавязчивойформе
предложитьемупоставить информациюо себе.Точнее,для вас
неважно знать его почтовый адрес, семейное положение и т.д.
Длявасважнополучитьегоимя(NickName)иадресэлектронной
почты.Необходимозарегистрироватьклиентаввашейинформационнойсистеме.

69
Рассмотрим пример регистрации мною студентов. Чтобы
бытьзарегистрированным,студентунеобходимонаправитьвмой
адресопределеннымобразомоформленноесообщениеэлектроннойпочты.Аименно:вполеТемадолжнобытьвведенопредло-
жениеследующеготипа:
Регистрация; МИПП; 2002; эк; дн; мн; Гончаров Андрей Николаевич; Андрей
Этобудетозначатьследующее:
Регистрация—этослово-признак,означающеето,чтоСооб-
щениенаправленодлятого,чтобыпользовательбылзарегистрированвБазе данных;
МИПП—аббревиатураназваниявуза;
2009—годпоступлениявинститут;
Эк—экономическийфакультет;
Дн—формаобучениядневная;
Мн—специальностьменеджмент;
ГончаровАндрейНиколаевич—полноеимястудента;
Андрей—короткоеимя,соответствующеесвойствуNickName
Контакта.
ЕсливпапкеВходящиенаходятсяСообщения,вполеТемако-
торыхестьсловоРегистрация,запускаетсямакрос.МакросразбираетпредложениевполеТема.Еслипервымэлементомявляет-
сясловоРегистрация,тосоздаетсяКонтакт,свойствакоторого
определяютсяостальнымисловамипредложенияполяТема.
ЕслирегистрацияпрошлауспешноиобразовансоответствующийКонтакт,тоформируетсяответноесообщениеэлектронной
почты,котороеизвещаетотправителяорегистрации.Полученное
сообщение свою миссию выполнило и может быть удалено из
папкиВходящие.Листинг6представляетмакрос,формирующий
КонтактынаосновесообщенийпапкиВходящие.
Листинг 6. Создание Контактов из входящих Сообщений
Sub СоздатьКонтактыИзВходящих()
'Блок объявления переменных
Dim aOl As Outlook.Application
Dim oNS As Outlook.NameSpace

70
Dim oFС As MAPIFolder 'объект - папка Контаткты
Dim oFI As MAPIFolder 'объект папка входящие
Dim cCn As Outlook.Items 'коллекция элементов Контакты
Dim cM As Items ‘коллекция входящих Сообщений
Dim iCn As Outlook.ContactItem 'элемент Контакт
Dim iM As Outlook.MailItem 'элемент Сообщение
Dim iManswer As Outlook.MailItem ‘ответ, в случае неправильного оформления
Dim iNote As Outlook.NoteItem 'элемент Заметка
Dim oFN As Outlook.MAPIFolder 'объект - папка Заметки
Dim cN As Outlook.Items ‘коллекция Заметок
Dim strInfo ‘строка информации о студенте
Dim infoArray ‘массив информации о студенте
Dim LT As String ‘текст письма-ответа
Dim i As Integer ‘переменная цикла при считывании
‘информации о студенте из массива
Dim флРегистрация As Boolean ‘флажок режима регистрации
‘Блок присваивания значений переменным
Set aOl = New Outlook.Application
Set oNS = aOl.GetNamespace(«MAPI»)
Set oFС = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»).Folders(«Контакты»)
Set oFI = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»).Folders(«Входящие»)
Set oFN = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»).Folders(«Заметки»)
Set cCn = oFС.Items
Set cM = oFI.Items
Set cN = oFN.Items
Set iM = cM.GetFirst
‘цикл просмотра всех Сообщений электронной почты в папке Входящие
For Each iM In cM
флРегистрация = False ‘о регистрации говорить пока еще рано
‘информация из поля Subject текущего Сообщения представляется в форме
'элементов массива
infoArray = Split(iM.Subject, «;», -1)
For i = LBound(infoArray) To UBound(infoArray)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
