[英]VBScript If Instr with a recordset
我正在尝试对VBScript中的记录集执行if语句,以“比较”比较记录集。
While Not rs.EOF
result = result & "<tr style='" & FontStyle(FontFamily, FontSize) & _
" background-color: " & RowColors(number mod 2) & "'>" &_
Tdc(number) & Td(rs("Name")) & Tdc(rs("Machine Type")) & _
Tdc(ChooseStatusColor(rs("Backup Status"))) & _
Tdc(rs("Backup State")) & Td(rs("Last Backup Start")) & _
Td(rs("Last Backup End")) & _
If InStr(rs("Next Backup"), "*M") > 0 Then Td(rs("Next Backup")) Else Td(rs("Next Backup")) & "12:00:00 AM" & _
End If &_
"</tr>"
rs.MoveNext
number = number + 1
Wend
如果我仅使用Td(rs("Next Backup")) & "12:00:00 AM" &_
可以正常工作,但是如果我添加比较If Instr(rs("Next Backup"), "*M") > 0 then Td(rs("Next Backup")) Else Td(rs("Next Backup")) & "12:00:00 AM" &_
,我得到了VB编译错误。 我不确定此逻辑中的错误在哪里,或者我什至不能在InStr函数中使用记录集。 我在这里做错了什么?
当我使用多行时,我得到相同的结果:
While Not rs.EOF
result = result & "<tr style='" & FontStyle(FontFamily, FontSize) & _
" background-color: " & RowColors(number mod 2) & "'>" & _
Tdc(number) & Td(rs("Name")) & Tdc(rs("Machine Type")) & _
Tdc(ChooseStatusColor(rs("Backup Status"))) & _
Tdc(rs("Backup State")) & Td(rs("Last Backup Start")) & _
Td(rs("Last Backup End")) & _
If InStr(1, (rs("Next Backup")), "*M") > 0 Then & _
Td(rs("Next Backup")) & _
Else Td(rs("Next Backup")) & "12:00:00 AM" & _
End If &_
"</tr>"
rs.MoveNext
number = number + 1
Wend
您不能内联VBScript中的条件条件。 将您的代码更改为如下所示:
While Not rs.EOF
result = result & "<tr style='" & FontStyle(FontFamily, FontSize) & _
" background-color: " & RowColors(number mod 2) & "'>" & _
Tdc(number) & Td(rs("Name")) & Tdc(rs("Machine Type")) & _
Tdc(ChooseStatusColor(rs("Backup Status"))) & _
Tdc(rs("Backup State")) & Td(rs("Last Backup Start")) & _
Td(rs("Last Backup End"))
If InStr(rs("Next Backup"), "M") > 0 Then
result = result & Td(rs("Next Backup"))
Else
result = result & Td(rs("Next Backup") & "12:00:00 AM")
End If
result = result & "</tr>"
rs.MoveNext
number = number + 1
Wend
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.