使用VBA传递.Subject和.Body Outlook属性

使用VBA传递.Subject和.Body Outlook属性,vba,Vba,我必须开发VB宏来从电子邮件在Oracle数据库中创建记录。我成功地创建了一个。它当前连接到数据库,并从宏中预定义的字段在数据库中创建记录。我要做一件事 我的脚本将从.subject和.body outlook属性中grep电子邮件主题和正文,并将其插入“p_descr”db列 Sub MainFlow() Dim cn As ADODB.Connection Dim cm As ADODB.Command Dim dbconnstring As String D

我必须开发VB宏来从电子邮件在Oracle数据库中创建记录。我成功地创建了一个。它当前连接到数据库,并从宏中预定义的字段在数据库中创建记录。我要做一件事

我的脚本将从.subject和.body outlook属性中grep电子邮件主题和正文,并将其插入“p_descr”db列

Sub MainFlow()
    Dim cn As ADODB.Connection
    Dim cm As ADODB.Command
    Dim dbconnstring As String
    Dim plsql As String
    plsql = ""


    Set cn = CreateObject("ADODB.Connection")
    cn.ConnectionString = "DRIVER={ORA_VER};DBQ=HOST:PORT/SERVICE_NAME;UID=USER;PWD=PASSWORD"
    cn.Open

    MsgBox (cn.Version)

      plsql = plsql & "declare "
      plsql = plsql & "  result tms.api.msg; "
      plsql = plsql & "begin "
      plsql = plsql & "     dbms_output.enable; "
      plsql = plsql & "     result := tms.api.addtask_m(p_userid => 'XXXX', "
      plsql = plsql & "     p_activity => 'XXXX', "
      plsql = plsql & "     p_client => 'XXXX', "
      plsql = plsql & "     p_environment => 'XXXX', "
      plsql = plsql & "     p_product => 'XXXX', " 'correct Prod
      plsql = plsql & "     p_descr => 'XXXX', " 'very dangerous description, quotation marks - for example
      plsql = plsql & "     p_class => 'XXXX', " 'class task
      plsql = plsql & "     p_empl => 'XXXX', "
      plsql = plsql & "     p_owner => 'XXXX', "
      plsql = plsql & "     p_duedate => '07-OCT-2019'); " 'due date func
      plsql = plsql & "     dbms_output.put_line(result.txt); "
      plsql = plsql & "     dbms_output.get_line(:line, :status);"
      plsql = plsql & "end;"

        Set cm = New ADODB.Command
        With cm
         .ActiveConnection = cn
         .CommandText = plsql
         .CommandType = adCmdText
         .Prepared = True
         .Parameters.Append .CreateParameter("line", adVarChar, adParamOutput, 32000)
         .Parameters.Append .CreateParameter("status", adInteger, adParamOutput, 32000)
         .Execute , , adExecuteNoRecords

         MsgBox (cm.Parameters("line").Value)
    End With


    cn.Close


    'get current mail item
    Set objItem = GetCurrentItem()
    MsgBox (objItem.Subject)
    'MsgBox (objItem.Body)


    End Sub



    Function GetCurrentItem() As Object
        Dim objApp As Outlook.Application

        Set objApp = Application
        On Error Resume Next
        Select Case TypeName(objApp.ActiveWindow)
            Case "Explorer"
                Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
            Case "Inspector"
                Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
        End Select

        Set objApp = Nothing
    End Function

VBScript、VB.NET或VBA宏?您已经设法提到了问题中的所有3个,但不清楚您实际上是在哪个环境中编写此代码的。请澄清。另外,您没有向我们提出问题、描述问题或提到错误。仅仅要求编写新代码并不是问题。我们不是来为你做所有的工作的,除非是很琐碎的。我们将帮助您解决问题,但不只是离开去做所有的思考。你研究了什么?你试过什么?你到底被困在哪里了?很抱歉没有给它下定义。我正在使用VBA宏。实际上,我需要做的是将电子邮件主题和正文插入特定的数据字段(p_descr)。我尝试了很多不同的方法来做到这一点,但每次都失败了。我试着做下一个:plsql=plsql&“p_descr=>'objItem.Subject',”但脚本只在数据库中插入objItem.Subject字符串,而不是我所期望的实际电子邮件主题。“我正在使用VBA宏”…然后请为您的问题设置一个适当的蓝色标记。NET是完全不同的。