2013-09-24 48 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() 

从另一个模块调用子

Call MyPublicSub 

示例 -

Call SetID() 
0

我不得不做这样得到它的工作在形式上公共职能没有工作 ` “在形式上材料 私人小组Calc_Click() 选择案例Me.CATEGORY 案 “帘布层” 是 上的错误继续下一步 'CurrentDb.Execute窗体![案件] .GetPlyQty 运行窗体![案件] .GetPlyQty \ n Me.Qty = PlyQty'(PlyQty是在全局模块) 结束选择 结束小组 “在全局模块 公共PlyQty为双

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

`