有两种方法可以在不进口进口路线的情况下做你想要的东西。两者都涉及VBA编程。 Sage ERP 300(或者我们都知道的Accpac)可以通过COM进行控制。这意味着您可以记录您想要在Accpac中自动化或控制的流程的宏,并且您将获得VBA代码,这将为您提供一个良好的起点。然后,您可以将该代码放入Excel工作簿中的VBA代码中。然而,你会错过一个部分。当您在Excel中启动Accpac时,您需要创建一个新的会话;告诉Accpac您的用户ID,密码,您想要连接的公司以及会话日期。通过该AccpacSession COM对象,您可以使用记录的VBA代码来自动执行Accpac,并将Excel工作簿中的信息推送到Accpac中。
下面是如何创建一个AccpacSession对象的例子:
Public AccSession As AccpacSession
Public AccSessMgr As AccpacSessionMgr
Public AccDBLink As AccpacDBLink
Private mlSessionID As Long
Private mstrObjectHandle As String
'-----------------------------------------------------------
Public Function OpenAccpacSession(Optional sCompany As String) As Boolean
OpenAccpacSession = False
mstrServerName = ""
If AccSessMgr Is Nothing Then
Set AccSessMgr = CreateObject("Accpac.SessionMgr")
With AccSessMgr
.AppID = "XY"
.AppVersion = "61A"
.ProgramName = "XY0001"
.ServerName = mstrServerName
End With ' mSessMgr
End If
If AccSession Is Nothing Then
AccSessMgr.CreateSession mstrObjectHandle, mlSessionID, AccSession
End If
If AccSession Is Nothing Then
OpenAccpacSession = False ' user couldn't sign on
Else
OpenAccpacSession = AccSession.IsOpened
End If
If OpenAccpacSession = True Then
Set AccDBLink = AccSession.OpenDBLink(DBLINK_COMPANY, DBLINK_FLG_READWRITE)
End If
End Function
现在,您就可以使用AccDBLink对象打开视图中的数据导入到ACCPAC。
另一种方法是采用在Accpac中记录的VBA宏,并添加代码以控制Excel。
导入模板可以正常工作,但它们可能成为设置正确的挑战,如果导入过程中验证存在问题,有时可能很难找出问题出在哪里以及出了什么问题。通过使用VBA路线,您可以对数据进行自己的验证,并纳入您自己的业务规则,并能够向用户提供更多信息错误消息。
编辑:在Excel的VBA环境中,您将添加引用。您需要的所有Accpac com对象都以“ACCPAC”作为前缀。具体而言,您需要ACCPAC COM API对象1.0和ACCPAC会话管理器1.0。
http://kb.accpac.com/cgi-bin/sagesoftwareonline2.cfg/php/enduser/std_adp.php?p_faqid=27834&p_created=1252701241可能会引起您的兴趣。我建议收集Sage而不是从Excel交付,因为会计软件应该具有良好的审计控制,包括比Excel更好的“简历”。 – pnuts
我现在开始认为,如果我导出一批样本数据并分析结果,那么我可能会从电子表格中导入适当的“模板”。这个电子表格模板可以替换现有的电子表格,并允许导入的方便,可能不需要自定义的宏。 – armadadrive