我在access中构建了一个表格,其中有两个文本框(总时数和部分删除),后面有公式。我现在已经编写了一个命令,通过点击命令按钮来发送电子邮件。同时,我也有代码在邮件发送后清除表单上的其他文本框。有没有办法清除后面有等式的文本框,让它在用户发送邮件时能够再次使用?现在当邮件发送后,等式文本框弹出,里面有###。
先谢谢你:)
On Error GoTo errhandle
Me.Filter = "CurrentDate= #" & Format(Me!CurrentDate, "yyyy\-mm\-dd") & "# and DiscoverTime= '" & Me!DiscoverTime & "' and TailNumber= '" & Me!TailNumber & "' and FleetID= '" & Me!FleetID & "'"
Me.FilterOn = True
DoCmd.SendObject acSendForm, "frmETIC", acFormatPDF, "email", "", "", "Recovery Report", "Attached is the submitted Recovery Report"
If [txtpart1hrs] = "" Or [txtpart2hrs] = "" Or [txtpart3hrs] = "" Then
txtPartRemoval = ""
Else
txtPartRemoval = "=CDbl(Nz([txtpart1hrs],0))+CDbl(Nz([txtpart2hrs],0))+CDbl(Nz([txtpart3hrs],0))"
End If
Me.CurrentDate = vbNullString
Me.DiscoverTime = vbNullString
Me.TailNumber = vbNullString
Me.FleetID = vbNullString
Me.ETIC = vbNullString
Me.NonRteWorkCard = vbNullString
Me.txtWorkOrder = vbNullString
你可以做这样的事情,如果文本框是明确的,做公式别的东西。
if [txtPart1Hrs] = "" or [txtPart2Hrs] = "" or [txtPart3hrs] = "" then
formulaBox = ""
else
formulaBox = "=CDbl(Nz([txtpart1hrs],0))+CDbl(Nz([txtpart2hrs],0))+CDbl(Nz([txtpart3hrs],0))"
end if
只需将formulabox替换为你为包含公式的文本框所设置的任何内容即可
EDIT 更新代码
变化
txtPartRemoval = "=CDbl(Nz([txtpart1hrs],0))+CDbl(Nz([txtpart2hrs],0))+CDbl(Nz([txtpart3hrs],0))"
到
txtPartRemoval.Value = CDbl(Nz([txtpart1hrs], 0)) + CDbl(Nz([txtpart2hrs], 0)) + CDbl(Nz([txtpart3hrs], 0))
试着改
txtPartRemoval.Value = CDbl(Nz([txtpart1hrs], 0)) + CDbl(Nz([txtpart2hrs], 0)) + CDbl(Nz([txtpart3hrs], 0))
到
txtPartRemoval.Value = CDbl([txtpart1hrs].value) + CDbl([txtpart2hrs].value) + CDbl([txtpart3hrs].value)
由于检查是否="",如果其中一个框是空的,它根本不会运行。