我想在 Outlook 中發送一封電子郵件,其中包含來自 Access 的查詢結果。電子郵件的正文包括一個帶有結果的表格(列/行)。當值為數字時,我想使用帶有逗號 xx,xxx 的數字格式。
我回收了我在這里找到的這段代碼。如何格式化表格輸出?
Public Sub NewEmail()
Dim olApp As Object
Dim olItem As Variant
Dim db As DAO.Database
Dim rec As DAO.Recordset
Dim strQry As String
Dim aHead(1 To 3) As String
Dim aRow(1 To 3) As String
Dim aBody() As String
Dim lCnt As Long
'Create the header row
aHead(1) = "Date"
aHead(2) = "Request Type"
aHead(3) = "Total" 'I want this to be comma separate number format?
lCnt = 1
ReDim aBody(1 To lCnt)
aBody(lCnt) = "<HTML><body><table border='2'><tr><th>" & Join(aHead, "</th><th>") & "</th></tr>"
'Create each body row
strQry = "SELECT * From Email_Query"
Set db = CurrentDb
Set rec = CurrentDb.OpenRecordset(strQry)
If Not (rec.BOF And rec.EOF) Then
Do While Not rec.EOF
lCnt = lCnt 1
ReDim Preserve aBody(1 To lCnt)
aRow(1) = rec("Test1")
aRow(2) = rec("Test2")
aRow(3) = rec("Test3")
aBody(lCnt) = "<tr><td>" & Join(aRow, "</td><td>") & "</td></tr>"
rec.MoveNext
Loop
End If
aBody(lCnt) = aBody(lCnt) & "</table></body></html>"
'create the email
Set olApp = CreateObject("Outlook.application")
Set olItem = olApp.CreateItem(0)
olItem.display
olItem.To = "[email protected]"
olItem.Subject = "Test E-mail"
olItem.htmlbody = Join(aBody, vbNewLine)
olItem.display
End Sub
uj5u.com熱心網友回復:
嘗試這樣的事情:
aRow(1) = Format(rec("YourDateField"), "yyyy-mm-dd")
aRow(2) = rec("YourRequestType")
aRow(3) = Format(rec("YourTotal"), "0.000")
如果留下一個點作為小數點分隔符,請嘗試:
aRow(3) = Replace(LTrim(Str(rec("YourTotal"))), ".", ",")
如果逗號是千位分隔符,請嘗試:
aRow(3) = Format(rec("YourTotal"), "00,000")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314233.html
標籤:vba ms-access 格式化 html-email
上一篇:由VBAShell命令打開的Windows資源管理器不在頂部
下一篇:MSAccess轉到控制子表單
