我有一个运行一个程序,在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
由于它工作在旧的形式我不明白为什么它不会在新形式的合作。
而不是使用
Forms!frmCourseDetailsDone.Command23_Click
我会使代码Command23_Click一个公共过程,然后调用程序,而不是直接引用一个按钮,另一种形式。
Public sub Command23_Click()
Call Command23_Click
在窗体调用子
Form_frmName.PublicSubName(anyVars)
例如 -
Form_NewClient.SetID()
从另一个模块调用子
Call MyPublicSub
例如 -
Call SetID()
我不得不做这样得到它的工作形式为公共职能没有工作
'--- In Form Materials
Private Sub Calc_Click()
Select Case Me.CATEGORY
Case "Ply"
On Error Resume Next
'CurrentDb.Execute Forms![CASE].GetPlyQty
Run Forms![CASE].GetPlyQty
Me.Qty = PlyQty '(PlyQty is in Globals module)
End Select
End Sub
'--- In Globals module
Public PlyQty As Double
'--- In form "Case"
Public Sub GetPlyQty()
Dim paintarea As Double
PlyQty = CalcPly(paintarea)
End Sub