Помогите с функцией в строке - PullRequest
1 голос
/ 08 марта 2010

У меня есть переменная 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?

Ответы [ 3 ]

1 голос
/ 08 марта 2010

Меня несколько беспокоит значение newitem, но в целом вы можете использовать Eval:

s = """The new commodity is"" & " _
& "Iif(dlookup(""IsVague"", ""CommodityType"", ""Description= "" & newItem)=""1"", ""vague."", ""not vague."")"
s2 = Eval(s)

Я не уверен, что это путь, подумайте об этом.

1 голос
/ 08 марта 2010

Итак, эта точная строка хранится в поле таблицы, и вы хотите, чтобы Access / VBA ее оценил, верно?

"The new commodity is " & Iif(dlookup("IsVague", "CommodityType", "Description= " & newItem)="1", "vague.", "not vague.")

Если это так, попробуйте команду Eval ():

emailBody = Eval(DLookup("emailBody", "listAdditions", "Id = " & itemType))
1 голос
/ 08 марта 2010

Ваш вопрос немного неясен, но если [Id] (или [Description]) является строкой, то ваш Dlookup должен выглядеть так:

 emailBody = DLookup("emailBody", "listAdditions", "Id = '" & itemType & "'")

или

 emailBody = DLookup("emailBody", "listAdditions", "Id = """ & itemType & """")

То есть ваша константа должна быть заключена в кавычки. Вы можете использовать '(одинарная кавычка) или "" (двойная кавычка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...