2015-04-21 5 views
0

Я работаю над формой, которая отправляет электронное письмо по нажатию командной кнопки, но после того, как в электронном письме сделаны текстовые поля, которые пользователь должен заполнить, они автоматически не удаляются. Я предоставил код, который у меня ниже. Может быть, есть какая-то другая команда очистки?Очистка текстовых полей после отправки по электронной почте

Заранее спасибо :)

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" 
exiterr: 
Exit Sub 
errhandle: 
If Err.Number <> 2501 Then 
MsgBox ("Email cancelled!") 
End If 
Resume exiterr 


Me.CurrentDate = Null 
Me.DiscoverTime = Null 
Me.TailNumber = Null 
Me.FleetID = Null 
+1

Me.CurrentDate = Null никогда не будет достигнуто, потому что у вас есть exit exitErr, что приводит к преждевременному выходу из программы. также вы должны использовать полный метод именования, например me.txt_currentDate.value = "", если только его dataField –

+0

@krish, вам не нужно использовать '.Value', поскольку он по умолчанию используется в MS Forms. Использование '.Value', хотя и не является незаконным, просто избыточно. – PaulFrancis

ответ

3

Вы выхода из Sub перед очисткой. Попробуйте следующее.

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" 

    Me.CurrentDate = vbNullString 
    Me.DiscoverTime = vbNullString 
    Me.TailNumber = vbNullString 
    Me.FleetID = vbNullString 
exiterr: 
    Exit Sub 
errhandle: 
    If Err.Number <> 2501 Then 
     MsgBox ("Email cancelled!") 
    End If 
    Resume exiterr 
+0

У меня есть побочный вопрос, есть ли причина использовать 'Me.TailNumber = vbNullString' над' Me.TailNumber = "" '? – Newd

+2

@Newd 'vbNullString' - это то же самое, что использовать' '' '. Это мой способ кодирования, поскольку всегда лучше использовать константы, где они доступны. Использование «» не оказывает вредного воздействия, 'vbNullString' просто делает его немного более изящным, чтобы понять намерение использования ZLS. – PaulFrancis

+0

Интересно, спасибо! – Newd

Смежные вопросы