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

古い形式で動作するので、新しい形式で動作しない理由がわかりません。

4

3 に答える 3

2

使用する代わりに

Forms!frmCourseDetailsDone.Command23_Click

コード Command23_Click をパブリック プロシージャにしてから、別のフォームのボタンを参照する代わりに、そのプロシージャを直接呼び出します。

Public sub Command23_Click() 

Call Command23_Click
于 2013-09-24T18:17:58.373 に答える
0

フォームのパブリック関数が機能しなかったため、機能させるにはこのようにする必要がありました

'--- 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
于 2016-10-29T13:23:50.153 に答える