首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ACCPAC和Excel电子表格

ACCPAC和Excel电子表格
EN

Stack Overflow用户
提问于 2013-08-27 18:02:48
回答 1查看 2.3K关注 0票数 0

在Excel2010的VBA中有引用ACCPAC的方法吗?

我想知道是否可以通过在Excel中运行宏来编程地将电子表格中的信息输入我们的会计数据库。我刚刚在ACCPAC的一个测试数据库中输入一个新客户时,研究了一个我记录的宏。我们的操作中心将信息存储在电子表格中,我希望能够在不重新输入数据的情况下进入数据库。

对于看到ACCPAC从电子表格获取数据而不是电子表格宏创建ACCPAC连接和对象的解决方案,我也持开放态度。

这不是一个超复杂的项目-我们只是想要一些东西来减少冗余。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-29 13:54:33

有两种方法可以实现您正在寻找的,而不走进口路线。两者都涉及到VBA编程。Sage ERP 300 (或我们都知道的Accpac )可以通过COM进行控制。这意味着您可以在Accpac中记录要自动化或控制的进程的宏,并获得VBA代码,这将为您提供一个良好的起点。然后,您可以将该代码带到Excel工作簿中的VBA代码中。然而,你将失去一部分。当您从Excel中启动Accpac时,您需要创建一个新会话;告诉Accpac您的用户ID、密码、要连接的公司以及会话日期。使用该AccpacSession COM对象,您可以使用记录的VBA代码来自动化Accpac,并将您在Excel工作簿中拥有的信息推入Accpac。

下面是如何创建AccpacSession对象的示例:

代码语言:javascript
复制
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。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18472519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档