Ah. It's making sense now.
If your table includes a field
"blah blah " & variable & " blah blah"
Then your table is actually storing a string defined as <
"blah blah " & variable & " blah blah " >
and the variable is not tokenized. It's all just a single string. I suppose you might possibly be able to pass the string to eval(), and substitiute the variable in eval()
This isn't the same as forming a string with a statement, or multiple statements..
MyString = "blah blah "
MyString = MyString & chr(34) & variable & chr(34) 'I think it would need the chr(34) chars.
MyString = MyString & " blah blah"
You can build up the string in code, and incorporate the html tags. So you would need 3 email "bodies"
part1, part 2, part3, and add the variables at run time
You can also use
@Minty idea of replacing placeholders. This is similar to a word document doing a mail merge. It knows which codes to replace with which fields from the mail merge. I do this within access to personalise messages and so on.
if you change your table string to
"blah blah [variable1] blah blah blah blah [variable2] blah blah "
then you can find whatever the tokens [variable1] and [variable2] are supposed to say, and replace them
replace(htmlstring,"[variable1]",replacementvariable1)
replace(htmlstring,"[variable2]",replacementvariable2)