You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Outlook邮件中发送带千分位数字格式表格的Access查询结果

解决Access发Outlook邮件表格数值千分位格式化的方案

修改核心逻辑

你只需要调整数值列的赋值语句,用VBA内置的Format函数对数值字段做格式化即可:

  • 千分位无小数使用格式符 #,##0
  • 千分位保留2位小数使用格式符 #,##0.00

调整后的完整代码

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

    '创建表头行
    aHead(1) = "日期"
    aHead(2) = "申请类型"
    aHead(3) = "总额" ' 该列需要设置千分位逗号格式

    lCnt = 1
    ReDim aBody(1 To lCnt)
    aBody(lCnt) = "<HTML><body><table border='2'><tr><th>" & Join(aHead, "</th><th>") & "</th></tr>"

    '创建表格内容行
    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) = Format(rec("Test3"), "#,##0")
            aBody(lCnt) = "<tr><td>" & Join(aRow, "</td><td>") & "</td></tr>"
            rec.MoveNext
        Loop
    End If

    aBody(lCnt) = aBody(lCnt) & "</table></body></html>"

    '创建邮件
    Set olApp = CreateObject("Outlook.application")
    Set olItem = olApp.CreateItem(0)

    olItem.display
    olItem.To = "example@example.com"
    olItem.Subject = "测试邮件"
    olItem.htmlbody = Join(aBody, vbNewLine)
    olItem.display

End Sub

内容的提问来源于stack exchange,提问作者Bruce Pavkov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:45:02