2013-09-24 6 views
3

У меня есть форма, которая запускает процедуру создания электронной почты в Outlook и прикрепляет к ней PDF. Его источник записи - не обновляемый запрос. Процедура выполняется нормально. Теперь я хочу запустить эту процедуру из другой формы, но я продолжаю получать сообщение о том, что это невозможно, потому что источник записи не является обновляемым. Кодирование в новой форме:Запустить процедуру в другой форме

Private Sub CourseCert_Click() 
On Error GoTo CourseCert_Click_Err 

DoCmd.OpenForm "frmCourseDetailsDone", acNormal, "", "[StaffLookup]=" & [StaffLookup], , acNormal 
Run Forms!frmCourseDetailsDone.Command23_Click 
DoCmd.Close acForm, "frmCourseDetailsDone" 

CourseCert_Click_Exit: 
    Exit Sub 

CourseCert_Click_Err: 
    MsgBox Error$ 
    Resume CourseCert_Click_Exit 

End Sub 

Поскольку он работает в старой форме, я не могу понять, почему он не будет работать с новой формой.

ответ

2

Вместо использования

Forms!frmCourseDetailsDone.Command23_Click 

Я хотел бы сделать код Command23_Click публичной процедуры, а затем вызвать процедуру непосредственно вместо ссылки на кнопку в другой форме.

Public sub Command23_Click() 

Call Command23_Click 
+0

Спасибо. Это сделал трюк. –

0

Вызов суб в форме

Form_frmName.PublicSubName(anyVars) 

Пример -

Form_NewClient.SetID() 

Вызов Sub из другого модуля

Call MyPublicSub 

Пример -

Call SetID() 
0

Я должен был сделать это так, чтобы он работал в качестве публичной функции в форме не работает ` «В Form Материалы Private Sub Calc_Click() Select Case Me.CATEGORY Case "Ply" On Error Resume Next 'CurrentDb.Execute Forms! [ДЕЛО] .GetPlyQty Run Forms! [Дело] .GetPlyQty \ п Me.Qty = PlyQty' (PlyQty в модуле Globals) End Select End Sub «в модуле Globals Public PlyQty As Double

'In form "Case" 
Public Sub GetPlyQty() 
Dim paintarea As Double 
PlyQty = CalcPly(paintarea) 
End Sub 

`

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