使用字符串变量调用sub

时间:2013-09-09 08:55:18

标签: sql vba outlook

我有一个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   翻译:“编译失败:非法使用财产”

有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

If ausloeser = True Then Call rec.Fields(aktion)

RecordSet.Fields是一个属性 - 记录集中的字段集合。它不是方法,因此无法在此处调用它。

我怀疑其意图是调用其他方法,并将aktion字段的内容传递给它?如果是这样,语法将为Then Call othermethod(rec.Fields("aktion"))