2017-07-25 58 views
0

我有一個表格(說)數據,其中包含文本框A,B,C。ms訪問表單字段到字符串vba

我希望根據表單數據編寫一封電子郵件。在我電子郵件正文,我想下面的格式:

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 &" 

這是因爲我讀了一個&結果到某個新行。

但是,當我這樣做時,整個事情被連接成書面代碼,沒有值從表單字段獲得。 請建議選擇: 在此先感謝

回答

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 

但我發現更難閱讀。

+0

謝謝!這很有效。不知道vbNewLine。 :) – munnahbaba

1

&符號用於連接文本"hello " & "there"

如果引用&符號,它什麼也不做,只是重現&符號"bits & bobs"

您可以使用字符vbCrLf(回車/換行)來添加(連接)換行,"time for " & vbCrLf & "a break"

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) 
+0

如果處理很多領域似乎是一個有趣的選擇。謝謝。 – munnahbaba

+0

不錯 - 如果在輸出中有多次使用的字段,這將特別有用,例如,人們的名字 - 一個'Replace'更新每一次出現。 – YowE3K