Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用HTML交替行的颜色_Html_Ms Access_Vba - Fatal编程技术网

使用HTML交替行的颜色

使用HTML交替行的颜色,html,ms-access,vba,Html,Ms Access,Vba,我目前正在用VBA编写代码,以使发送电子邮件的过程自动化,该电子邮件包含Access数据库中查询生成的表信息。我正在使用HTML格式化该电子邮件中的表格,我需要该表格中各行的颜色来替换奇数行的颜色:ccffcc;偶数行:ffffff,但我似乎无法理解。我尝试过使用子选择器,但我看不出如何在这里使用它。我没有太多与CSS或HTML相关的经验或知识,因此我很可能错误地使用了子选择器 以下是我目前拥有的: Bodytext2 = "<html>" & _ "<body

我目前正在用VBA编写代码,以使发送电子邮件的过程自动化,该电子邮件包含Access数据库中查询生成的表信息。我正在使用HTML格式化该电子邮件中的表格,我需要该表格中各行的颜色来替换奇数行的颜色:ccffcc;偶数行:ffffff,但我似乎无法理解。我尝试过使用子选择器,但我看不出如何在这里使用它。我没有太多与CSS或HTML相关的经验或知识,因此我很可能错误地使用了子选择器

以下是我目前拥有的:

Bodytext2 = "<html>" & _
    "<body>" & _
    "<TABLE BORDER=0 CELLpadding=0  style='font-family:Arial; font-size:12px'>" & _
    "<TBODY>" & _
    "<TH bgcolor='#dcdcdc'> Field1 </TH>" & _
    "<TH bgcolor='#dcdcdc'> Field2 </TH>" & _
    "<TH bgcolor='#dcdcdc'> Field3 </TH>"

'Creates the table
Set rst = mydb.OpenRecordset("Query In Access")
    Do Until rst.EOF
        Bodytext2 = Bodytext2 & _
        "<TR ALIGN=CENTER VALIGN=MIDDLE>" & _
        "<TD> " & rst![Field1] & _
        "<TD> " & rst![Field2] & _
        "<TD> " & rst![Field3]
        rst.MoveNext
    Loop
    rst.Close

Bodytext2 = Bodytext2 & "</table>"
此代码生成包含正确信息的正确表。但是,我不知道在哪里添加代码来更改表行的颜色,或者甚至不知道如何编写代码来更改表行的颜色。到目前为止,我的猜测是它将位于TR Align=center valign=middle部分,但这只是我的猜测

我已经在这里找到了很多其他的答案,但我认为我在这个领域的知识不足使得我很难确定我真正需要什么以及需要去哪里。所以,如果你们能给我一些类似问题的有用答案,我也会非常感激


谢谢大家!

在进入循环之前创建一个计数器变量,它可以让您跟踪行号,如下所示:

i = 1
Do Until rst.EOF
    If i Mod 2 = 0 Then
        Bodytext2 = Bodytext2 & "<TR ALIGN=CENTER VALIGN=MIDDLE BGCOLOR='#ffffff'>"
    Else
        Bodytext2 = Bodytext2 & "<TR ALIGN=CENTER VALIGN=MIDDLE BGCOLOR='#ccffcc'>"
    End If
    Bodytext2 = Bodytext2 & _
    "<TD> " & rst![Field1] & _
    "<TD> " & rst![Field2] & _
    "<TD> " & rst![Field3]
    rst.MoveNext
    i = i + 1
Loop

对于任何语法错误,我深表歉意。我的VBA有点生疏。

请尝试:。顺便说一句,我使用了您提出的HTML样式,但您应该知道该语法已经过时。更好、更标准的方法是:这样做非常有效。非常感谢您对我的初始答案和代码的更新。我很感激!