Microsoft Access / VBA и Outlook - вылетает - PullRequest
0 голосов
/ 26 мая 2020

Мы пытаемся создать приложение доступа. Сначала он обновит ввод данных, а затем сгенерирует приложение Outlook. Он обновит данные, но вылетит из-за Outlook (так мы и думали).

Что мы пробовали:

  • Раннее / позднее связывание
  • DoEvents
  • Отладка, чтобы узнать, на каком шаге он будет взламывать sh, но в режиме отладки он не взломает sh
  • DoCmd.SendObject

Наш код:

Private Sub cmd_Freigegeben_Click()
 Dim OutApp As Outlook.Application
    Dim OutMail As Outlook.MailItem
    Dim strbody As String
    Dim sname As String
    Dim sTo As String
    Dim sSAP As String
    Dim sFRE As String
    Dim sFile As String
    Dim iClick As String

     sTo = Me.txt_EMail.Value
     sSAP = Me.txt_SAP.Value
     sFRE = Me.txt_FreigabeID

  Dim FlName As String
    sFile = Me.txt_Link
    sFile = Replace(sFile, "\\file01\", "W:\")

       FlName = sFile

If FlName = "" Then
    MsgBox "Bitte wähle einen Datensatz aus!", vbOKOnly, "Vorsicht"
    Exit Sub
End If
 iClick = MsgBox( _
         prompt:="Die Änderung dieses Datensatzes mit der SAP-Nummer:  (" & sSAP & ") und mit der Freigabe-ID:  (" & sFRE & ") wird gestartet, möchtest du fortfahren?", _
         Buttons:=vbYesNo, Title:="FREIGEGEBEN")
   If iClick = vbYes Then
     GoTo UPDATE
   ElseIf iClick = vbNo Then
     Exit Sub
   End If

UPDATE:
 Call mod_update.freigegeben_update

    On Error GoTo Fehler
    Set OutApp = New Outlook.Application
    Set OutMail = OutApp.CreateItem(olMailItem)

    strbody = "Hallo," & vbNewLine & vbNewLine & "ich habe dir folgende Wohnung mit der SAP-Nummer freigegeben: " & sSAP & vbNewLine & vbNewLine & "LG :)"

    With OutMail
        .To = sTo
        .Subject = Me.cbo_Freigabeliste.Value & " Freigabe - " & sSAP & " , Freigabe-ID: " & sFRE
        .Body = strbody
        .display
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
    Call Felder_Leeren


Fehler:
    If Err.Number <> 0 And Err.Number <> 40040 Then MsgBox "OMG! Da ist was falsch! Bitte melden!" & vbCrLf & "Fehler: " & Err.Number, vbCritical, "Computer sagt nein :("
End Sub

Может у кого-то был этот чехол и он знает, что делать? (на поиск решения мы потратили 2 дня)

Спасибо!

1 Ответ

0 голосов
/ 26 мая 2020

Похоже, вы сталкиваетесь со стандартной проблемой безопасности при работе с объектной моделью Outlook. Чтобы убедиться, просто попробуйте заменить метод .Send на метод .Display. Доступно несколько вариантов:

  1. Используйте новейшее антивирусное программное обеспечение (в этом случае Outlook не будет отображать запрос)
  2. Используйте низкоуровневый код, на котором построен Outlook - Расширенный MAPI. Вы можете рассмотреть возможность использования любых оболочек, таких как Redemption, которые используют расширенный MAPI.
  3. Продукт, например ClickYes или Outlook security manager, который позволяет подавлять такие предупреждения или подсказки.
  4. Развернуть групповую политику для предотвратить возникновение проблем.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...