我有一个SQL数据库,其中列出了邮件必须满足的条件。
对于我收到的每封邮件,都会搜索数据库,如果满足其中一条记录的条件,则应为邮件调用另一个Sub。要在哪个Sub执行也在数据库中定义。
一切正常,但我无法打电话给Sub。
Sub automatik_sql()
'VERWEIS auf ActiveX Data Objects 6.1 Library notwendig'
Dim olApp As Outlook.Application
Dim olitem As Outlook.MailItem
Set olApp = Outlook.Application
Set olitem = Application.ActiveInspector.CurrentItem
Dim con As ADODB.connection
Dim rec As ADODB.recordset
Dim MySQL As String
Dim ausloeser As Boolean
ausloeser = True
MySQL = "SELECT MA_Index, beding_body, beding_subj, aktion FROM Mail_Automatik where (empfaenger = '" & olitem.To & "' and absender ='" & olitem.SenderEmailAddress & "')"
Set con = New ADODB.connection
con.Open "Provider=sqloledb; Data Source=meinedaten; Initial Catalog=STAMMDATEN; INTEGRATED SECURITY=sspi;"
Set rec = con.Execute(MySQL)
While Not rec.EOF
If Not IsNull(rec.Fields("beding_body").Value) Then
If InStr(olitem.Body, rec.Fields("beding_body").Value) = 0 Then ausloeser = False
End If
If Not IsNull(rec.Fields("beding_subj").Value) Then
If InStr(olitem.Subject, rec.Fields("beding_subj").Value) = 0 Then ausloeser = False
End If
现在我遇到了问题:
If ausloeser = True Then Call rec.Fields("aktion")
rec.movenext
Wend
End Sub
当我在德语机器上工作时,我只有德语中的错误(在Sub的开头弹出):
Fehler beim kompilieren:UnzulässigeVerwendungeiner Eigenschaft 翻译:“编译失败:非法使用财产”
有人有任何想法吗?
答案 0 :(得分:0)
If ausloeser = True Then Call rec.Fields(aktion)
RecordSet.Fields是一个属性 - 记录集中的字段集合。它不是方法,因此无法在此处调用它。
我怀疑其意图是调用其他方法,并将aktion
字段的内容传递给它?如果是这样,语法将为Then Call othermethod(rec.Fields("aktion"))