2017-06-12 144 views
0

我試圖從我的其他窗體'frmDisclosure'的窗體'frmInvoiceAdd'中運行一個過程。這不是Form/SubForm關係。他們是分開的。在 'frmInvoiceAdd' 的程序是:以另一種形式運行程序

CmdInvoice on click: 
Public Sub CmdInvoice_Click() 
On Error GoTo CmdInvoice_Click_Err 

On Error Resume Next 
DoCmd.GoToRecord , "", acNewRec 
DoCmd.GoToControl "InvDate" 
Me.InvDate = Date 
DoCmd.RunCommand acCmdSaveRecord 

DoCmd.RunSQL "UPDATE tblInvoices SET tblInvoices.DiscFK = [Forms]! 
[frmDisclosure]![DiscPK], " & _ 
      "tblInvoices.ClientFK = [Forms]![frmDisclosure]![ClientFK], 
tblInvoices.ReceiptFK = [Forms]![frmDisclosure]![ReceiptFK] " & _ 
      "WHERE (((tblInvoices.InvoicePK)=[Forms]![frmInvoiceAdd]! 
[InvoicePK])) " 

CmdInvoice_Click_Exit: 
Exit Sub 

CmdInvoice_Click_Err: 
MsgBox Error$ 
Resume CmdInvoice_Click_Exit 

End Sub 

我想從 'frmDisclosure' 這條命令:

DoCmd.OpenForm "frmInvoiceAdd" 
Run Forms!frmInvoiceAdd.CmdInvoice_Click 
DoCmd.Close acForm, "frmInvoiceAdd" 

我收到此錯誤信息:

Microsoft Access不能找到程序'。' 它強調: 運行形式frmInvoiceAdd.CmdInvoice_Click

我試圖改變「運行」,以電話,但我收到此錯誤信息: !預計:。或(

回答

0

我插入 上的錯誤繼續下一步 這解決了這個問題

+0

但是,這是否實際運行過程'呼叫Form_frmInvoiceAdd.CmdInvoice_Click()'應該工作 – Andre

+0

是的,它運行了程序,但我不滿意使用On Error Resume Next。我刪除了後者,並使用你的建議,它的工作。謝謝。 –

1

要調用的形式模塊中的公共子(或功能)從表單模塊外,使用此語法:

Call Form_NameOfTheForm.NameOfTheSub() 

在這個例子中:?

Call Form_frmInvoiceAdd.CmdInvoice_Click()