|
|
|
| Форумы/
Сообщений: всего:53643, сегодня:0, за неделю:31, за месяц:46, за год:1617
|
|
Использование СУБД Ms Access, программирование на VB, VBA
Данный форум посвящен различным вопросам создания приложений баз данных на платформах - Microsoft Access, Microsoft Visual Basic.
|
|
|
|
|
|
Добрый день! Подскажите, пожалуйста, по следующему вопросу. На основании таблицы 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 |
|
|
Как то так tbluser - имя таблицы user - поле на форме users,e-mail - колонка в таблице
Address = DLookup("[e-mail]", "tbluser", "[users] = " & Me![user])
oMSG.To = Address
 |
| 04.02.2010 19:11 |
|
|
| Shadow Of Sun, не получается...Это функция, я могу туда поставить Me![user]? С Forms![NPT]![User_perezv]) тоже не работает! |
| 05.02.2010 11:51 |
|
|
Создай глобальную переменную и перед вызовом функции присваивай ей нужные значения. Или создай функцию с параметрами. |
| 05.02.2010 13:51 |
|
|
Объясняю добавь строчку Dim Address as string Address - переменная Функция будет работать если ты вызываешь ее кнопкой на этой же форме Если из другой формы - как уже говорили - нужна глобальная переменная При создании раскрывающегося списка в ячейку ставится значение кода, а не ФИО получателя, соответственно и ищешь по этому коду в своей таблице Удачи |
| 05.02.2010 22:08 |
|
|
Если у Вас элемент управления user - Поле со списком, то добавьте третий столбец (кроме сущесвующих двух - номер и ФИО пользователя), где бы из той же таблицы Users выводился адрес электронной почты. В нужном месте программы этот адрес можно получить, например, так:
oMSG.To=user.Column(2,user.ListIndex)
Свідомі українці голосують за Юлію Володимирівну |
| 06.02.2010 01:45 |
|
|
Благодарю всех за помощь! Отправка на выбранный адрес заработала:
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 |
|
 
|
|