ms将表单字段访问为字符串vba

时间:2017-07-25 22:21:49

标签: vba ms-access

我有一个表格(比如说)数据,其中包含文本框A,B,C。

我希望根据表单数据撰写电子邮件。在我的电子邮件正文中,我想要以下格式:

A是:(表单中文本框中A的实际值)(换行符) B是:((表格中文本框中B的实际值)(换行符) C是:((表格中文本框中C的实际值)。

我知道我可以通过Forms!Data!A_value访问值(假设我将该框命名为A_value)。我无法将它们组合成一个字符串并添加换行符。

我尝试了以下内容:

Dim body as String

body = "A is : & Forms!Data!A_value &" & "B is : & Forms!Data!B_value &" & "C is : & Forms!Data!C_value &"

因为我读过&在某个地方找到一条新线。

然而,当我这样做时,整个事物被串联在代码中,并且没有从表单字段获得值。 请建议选项: 提前致谢

3 个答案:

答案 0 :(得分:1)

您可能需要以下内容:

Dim body as String

body = "A is : " & Forms!Data!A_value & vbNewLine & _
       "B is : " & Forms!Data!B_value & vbNewLine & _
       "C is : " & Forms!Data!C_value 

注意:我使用行连续字符在3行上编写代码的事实与在输出中插入新行字符无关。它也可以写成

body = "A is : " & Forms!Data!A_value & vbNewLine & "B is : " & Forms!Data!B_value & vbNewLine & "C is : " & Forms!Data!C_value 

但我发现更难阅读。

答案 1 :(得分:1)

&符号用于连接文本"hello " & "there"

如果您引用&符号,则无效,只需复制&符号"bits & bobs"

您可以使用字符vbCrLf(回车符/换行符)添加(连接)换行符"time for " & vbCrLf & "a break"

答案 2 :(得分:1)

您可以使用的另一个技巧是创建一个带有占位符的单个字符串模板,然后使用Replace语句填充它们,如:

body = "A is: {A} & B is: {B} & C is: {C}"
body = Replace(body, "{A}", Forms!Data!A_value)
body = Replace(body, "{B}", Forms!Data!B_value)
body = Replace(body, "{C}", Forms!Data!C_value)

分成多行,例如:

body = "A is: {A}{CR}B is: {B}{CR}C is: {C}{CR}"
body = Replace(body, "{A}", Forms!Data!A_value)
body = Replace(body, "{B}", Forms!Data!B_value)
body = Replace(body, "{C}", Forms!Data!C_value)
body = Replace(body, "{CR}", vbCrLf)