Как отослать письмо из Accessa?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Netta
Новичок
Новичок
 
Сообщения: 37
Зарегистрирован: 25.11.2003 (Вт) 12:22
Откуда: Lithuanian

Как отослать письмо из Accessa?

Сообщение Netta » 31.03.2005 (Чт) 9:50

Люди добрые помогите. Я в Accessе чайник, а надо очень быстро базы сделать и так чтоб после нажатия кнопочки письмо Outlook'овское было сформировано, да ещё чтоб адрес и текст письма был уже установлен :cry: Может кто с такое делал и может объяснить мне глупой.

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 31.03.2005 (Чт) 10:22

Вариант 1. Отправка через дефолтный почтовый клиент.
Код: Выделить всё

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Sub SendEMail(ByVal sMailName As String, ByVal sSubject As String, ByVal sBody As String)
'
On Error GoTo eRes

'//////////////////////////////////////////////////////////////////////////////////////
  Dim sSendString As String
  Dim lRes As Long
  Const SW_SHOW = 5
'//////////////////////////////////////////////////////////////////////////////////////

sSendString = "mailto:" & sMailName & "?subject=" & Replace(sSubject, " ", "%20") & _
  "&body=" & Replace(Replace(sBody, " ", "%20"), vbCrLf, "%0A")

lRes = ShellExecute(0, "open", sSendString, "", "", SW_SHOW)

Exit Sub
eRes:
  Call Err.Raise(Err.Number, "SendEMail", _
  Err.Description)
End Sub
[/syntax]

Вариант 2. Использование Outlook'а ([b]не[/b] Express). Нужен приатаченный класс.
[syntax="vb"]
Public Sub SendEMail(ByVal sMailName As String, ByVal sSubject As String, ByVal sBody As String)
'
On Error GoTo eRes

'//////////////////////////////////////////////////////////////////////////////////////
Dim oMail As clsMailManagement
'//////////////////////////////////////////////////////////////////////////////////////

Set oMail = New clsMailManagement
With oMail
  .BodyType = MBT_DEFAULT
  .AddrAdd sMailName
  .Subject = sSubject
  .Body = sBody
  If Not .CreateMessage Then Call MsgBox("Ошибка подключения к Outlook (" & .LastError & ")", vbExclamation, "Почта")
End With
Set oMail = Nothing

Exit Sub
eRes:
  Call Err.Raise(Err.Number, "SendEMail", _
  Err.Description)
End Sub
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Sedge 22.04.2009 (Ср) 16:55, всего редактировалось 1 раз.

Netta
Новичок
Новичок
 
Сообщения: 37
Зарегистрирован: 25.11.2003 (Вт) 12:22
Откуда: Lithuanian

Сообщение Netta » 31.03.2005 (Чт) 10:50

Спасибо большое, первый вариат прекрасно работает :)


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron