清除后面有公式的文本框。

问题描述 投票:1回答:1

我在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

enter image description here

vba ms-access textbox
1个回答
0
投票

你可以做这样的事情,如果文本框是明确的,做公式别的东西。

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)

由于检查是否="",如果其中一个框是空的,它根本不会运行。

© www.soinside.com 2019 - 2024. All rights reserved.