有两种方法可以在不走导入路线的情况下完成您正在寻找的事情。两者都涉及 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 Object 1.0 和 ACCPAC Session Manager 1.0。