【问题标题】:Help with function in string字符串中的函数帮助
【发布时间】:2010-03-08 15:53:25
【问题描述】:
我有一个变量 emailBody,它被设置为存储在数据库中的字符串。电子邮件正文通过 dlookup 函数设置为字符串。
emailBody = DLookup("emailBody", "listAdditions", "Id = " & itemType)
电子邮件正文设置的字符串包含 IIf 函数(其中包含 dlookup 函数)。什么时候
?emailBody 在运行时在即时窗口中输入,表明 emailBody 设置为以下字符串:
新商品是" & Iif(dlookup("IsVague", "CommodityType", "Description=" & newItem)="1", "vague.", "not vague.")
但是,我希望评估 dlookup 和 IIf 函数并将它们的结果存储在字符串中。如何在我的数据库中正确格式化 emailBody 字符串(“新商品...”),以便评估函数并将结果存储在 emailBody 变量中?
【问题讨论】:
标签:
string
vba
syntax
function
【解决方案1】:
你的问题有点不清楚,但是如果[Id](或[Description])是一个字符串,那么你的Dlookup一定是这样的:
emailBody = DLookup("emailBody", "listAdditions", "Id = '" & itemType & "'")
或
emailBody = DLookup("emailBody", "listAdditions", "Id = """ & itemType & """")
也就是说,你的常量应该用引号括起来。您可以使用 '(单引号)或 ""(双引号)。
【解决方案2】:
我有点担心newitem的值,但一般情况下可以用eval:
s = """The new commodity is"" & " _
& "Iif(dlookup(""IsVague"", ""CommodityType"", ""Description= "" & newItem)=""1"", ""vague."", ""not vague."")"
s2 = Eval(s)
我不确定这是要走的路,请考虑一下。
【解决方案3】:
所以您将这个确切的字符串存储在表字段中,并且您希望 Access/VBA 对其进行评估,对吗?
"新商品是" & Iif(dlookup("IsVague", "CommodityType", "Description=" & newItem)="1", "vague.", "not vague.")
如果是这样,请尝试 Eval() 命令:
emailBody = Eval(DLookup("emailBody", "listAdditions", "Id = " & itemType))