我可以连接到访问数据库并从c#运行函数等,我甚至可以抓住我需要点击的按钮,但我不能让它认为它被点击了。
nonManagedDb.DoCmd.OpenForm("frmMaintenance", Access.AcFormView.acNormal, MissingVal, Access.AcFormOpenDataMode.acFormReadOnly, Access.AcWindowMode.acWindowNormal, MissingVal);
var RunRep = (CommandButton)nonManagedDb.Forms["frmMaintenance"].Controls["btnDailySheetsReport"];
这就像我已经得到的那样远,我已经尝试过反射来抓住它的事件并调用它但它被归类为COM对象只是为了这样。
答案 0 :(得分:0)
在Access中,我们可以使用以下语法调用另一种形式的过程:
Call Forms.TransactionTotals.UpdateEmployeeHours
或
Call Forms.OtherTransactionsEntry_VendorInvoices.SetInvoiceID(Me.cboVendorInvoiceID)
现在我怀疑你可以在.Net中使用类似的语法,但也许这足以通过Interop等来解决问题。
否则,如果您可以运行一个函数,那么在Access中创建一个单行函数,其唯一的工作就是在窗体上调用该过程。
此外,点击程序将被称为
cmdDeleteTransaction_Click