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

이전 양식에서 작동하기 때문에 새로운 양식에서 작동하지 않는 이유는 알 수 없습니다. 대신 나는 코드를 만들 것

Forms!frmCourseDetailsDone.Command23_Click 

를 사용

답변

2

는 공개 절차를 Command23_Click 다음 프로 시저를 호출하는 대신 직접 다른 형태의 버튼을 참조.

Public sub Command23_Click() 

Call Command23_Click 
+0

감사로 전역 모듈 공공 PlyQty에종료를 선택 최종 하위 '. 그것은 트릭을했다. –

0

형태 서브 호출

Form_frmName.PublicSubName(anyVars) 

예 - 또 다른 모듈로부터 하위 호출

Form_NewClient.SetID() 

Call MyPublicSub 

예 -

Call SetID() 
0

나는이 양식 자료에서 ' 개인 서브 Calc_Click() 선택 케이스를 ` 를 작동하지 않았다 형태로 공공 기능으로 작업을 진행하게 이런 식으로해야했다 에러 Me.CATEGORY 케이스 "플라이" 는 다음 재개 'CurrentDb.Execute 양식! [CASE] .GetPlyQty 실행 폼! [CASE] .GetPlyQty \를 N Me.Qty = PlyQty'(PlyQty는 전역 모듈이다)

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

`

관련 문제