Программирование MsAccess, VB, VBA

  

© am 1999-2010

Добро пожаловать, незнакомец! [вход]   

|  Домой   |   Новости   |   Гостевая   |   Форумы   |   Поиск   |   Страницы Авторов   |

Форумы/     Сообщений: всего:53643, сегодня:0, за неделю:31, за месяц:46, за год:1617
Использование СУБД Ms Access, программирование на VB, VBA
Данный форум посвящен различным вопросам создания приложений баз данных на платформах - Microsoft Access, Microsoft Visual Basic.

Public forum

  Home Ответить подписка В избранное Из избранного

E-mail из таблицы Профиль пользователяZvt104   
Добрый день! Подскажите, пожалуйста, по следующему вопросу.
На основании таблицы Rez сделана форма. В таблице имеются поля id, user, e-mail. В поля user, e-mail подставляются данные из таблицы Users.
Как сделать,чтобы при выборе пользователя из поля User из расскрывающегося списка в форме, ему на электронку приходило сообщение, т.е соответсвующий емейл подставлялся в oMSG.To в этот код(если, конечно, так можно)?

Public Function sendEmail() As Integer
On Error GoTo Err_sendEmail
Dim oMSG As Object
Dim oConfig As Object
Dim CFields As Object
Dim strBody As String

Set oMSG = CreateObject("CDO.Message")
Set oConfig = CreateObject("CDO.Configuration")
Set CFields = oConfig.Fields
Set oMSG.Configuration = oConfig

CFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1"
CFields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
CFields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "test" 'Login
CFields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "1" 'password
CFields("urn:schemas:mailheader:content-language") = "windows-1251"
CFields.Update

oMSG.To = "test@zvt.net"
oMSG.From = "info@zvt.net"
oMSG.Subject = "TEST"
oMSG.BodyPart.Charset = "windows-1251"
oMSG.AddAttachment "d:\temp1\Test0.rtf"
oMSG.TextBody = "Hello"
oMSG.Send

sendEmail = 1

Exit_sendEmail:
    Set CFields = Nothing
    Set oConfig = Nothing
    Set oMSG = Nothing
    Exit Function

Err_sendEmail:
    sendEmail = 0
    If Not IsNull(VarDebug) Then If VarDebug Then MsgBox (Err.Description)
    Resume Exit_sendEmail
End Function
04.02.2010 11:04

Re:E-mail из таблицы Профиль пользователяShadow Of Sun   
Как то так
tbluser - имя таблицы
user - поле на форме
users,e-mail - колонка в таблице
Address = DLookup("[e-mail]", "tbluser", "[users] = " & Me![user])
oMSG.To = Address

04.02.2010 19:11

Re:E-mail из таблицы Профиль пользователяZvt104   
Shadow Of Sun, не получается...Это функция, я могу туда поставить Me![user]? С Forms![NPT]![User_perezv]) тоже не работает!
05.02.2010 11:51

Re:E-mail из таблицы Anonimous   
Создай глобальную переменную и перед вызовом функции присваивай ей нужные значения.
Или создай функцию с параметрами.
05.02.2010 13:51

Re:E-mail из таблицы Профиль пользователяShadow Of Sun   
Объясняю
добавь строчку
Dim Address as string
Address - переменная
Функция будет работать если ты вызываешь ее кнопкой на этой же форме
Если из другой формы - как уже говорили - нужна глобальная переменная
При создании раскрывающегося списка в ячейку ставится значение кода, а не ФИО получателя, соответственно и ищешь по этому коду в своей таблице
Удачи
05.02.2010 22:08

Re:E-mail из таблицы Профиль пользователяМиша   
Если у Вас элемент управления user - Поле со списком, то добавьте третий столбец (кроме сущесвующих двух - номер и ФИО пользователя), где бы из той же таблицы Users выводился адрес электронной почты. В нужном месте программы этот адрес можно получить, например, так:

oMSG.To=user.Column(2,user.ListIndex)

Свідомі українці голосують за Юлію Володимирівну
06.02.2010 01:45

Re:E-mail из таблицы Профиль пользователяZvt104   
Благодарю всех за помощь!
Отправка на выбранный адрес заработала:
Private Sub User_perezv_Click()
Dim MSG As Object
Dim Config As Object
Dim CFields As Object
Dim strBody As String
Set MSG = CreateObject("CDO.Message")
Set Config = CreateObject("CDO.Configuration")
Set CFields = Config.Fields
Set MSG.Configuration = Config
CFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1"
CFields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
CFields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "test@zvt.net" '
CFields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "1"
CFields("urn:schemas:mailheader:content-language") = "windows-1251"
CFields.Update

MSG.To = DLookup("[Email]", "[Users]", "[Users]='" & [User_perezv].Value & "'")
MSG.From = "test@zvt.net"
MSG.Subject = "У Вас новая заявка на звонок!!!"
MSG.BodyPart.Charset = "windows-1251" '
strBody = Text + vbNewLine & [Rez].Value & [KOMMENT].Value
MSG.Send
Set CFields = Nothing
Set Config = Nothing
Set MSG = Nothing

End Sub

Буду разбираться с текстом письма, т.е переносом внесенных значений в письмо.
10.02.2010 15:28

  Home Ответить подписка В избранное Из избранного

  Rambler's Top100TopList