2013-09-24 75 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 

`