[Projectwise VBA] 如何在VBA里调用PW SDK的函数

各位好,

如题,我参照以下链接想测试一下VBA连接PW(SDK已经安装),但似乎连不同,报错如下

https://communities.bentley.com/products/programming/projectwise_programming/f/projectwise-programming---forum/41001/how-to-access-projectwise-via-vb-net-or-vba/90985#90985

请问:

1. VBA调用PW SDK函数的步骤是怎样的?

2. 用VBA调用PW SDK开发是否有参考实例?在哪可以找到?

谢谢!

  • 如下附件是一个非常老的(大概是2006年)VBA调用PW API的例子。如果您的MicroStation还是V8i的话,基本上能适用。如果是MSCE的话,则不行,因为MSCE为64位软件,VBA也从6.0升级到了64为的VBA7.1,调用外部API的函数声明需要做出较大的修改。

    VBA操作PW.zip



  • 符工,你好,我是在MS Access里调用的,不是Microstation,应该也可以?

    我上面的报错应该是指找不到DMSCLI.dll这样的文件,似乎不是函数声明的问题?

    我找了一下DMSCLI.dll这个文件,在C:\Program Files (x86)\Bentley\ProjectWise\bin找到有这个文件;所以请问是所有的库文件都在这里找吗?但是我看wiki上提供的视频教程(并不是vba的,只是参考了一下)上的如pwdms.dll又在这里找不到,所以怎么才能一次将所有可能的.dll文件都包含到vba程序里呢?--如果需要将这些.dll包含进来的话?

    然后请问我需要怎么把这个文件包含进来呢?是需要regsvr32注册吗?注册了一下并不成功,所以还是有这个问题。。

    如果不需要包含进来(?),那么应该怎么操作?

    期待解答。谢谢!

    我试了一下你给的参考文件,报错如下,按我的理解,应该是这句中的DataSourceTypes没有定义,应该还是有标准的函数没有包含进来。。

    Public Sub Login(lngDataSourceType As DataSourceTypes, strLoginDataSourceName As String, strLoginUserName As String, strLoginPassword As String)

  • MS Access里调用的,不是Microstation,应该也可以?

    我认为也是可以的。

    我上面的报错应该是指找不到DMSCLI.dll这样的文件,似乎不是函数声明的问题?

    DLL文件必须位于以下三个目录之一:  
    (1)Windows的系统目录:\Windows\system32
    (2)DOS中path所指出的任何目录
    (3)程序所在的目录

    怎么才能一次将所有可能的.dll文件都包含到vba程序里呢?--如果需要将这些.dll包含进来的话?

    如上面的问题,你需要将PW中含有DLL的几个文件夹都加入到Windows系统的PATH路径中即可

    是需要regsvr32注册吗?

    不需要注册。



  • 好的,谢谢,我再试一下,有问题我再请教!//hughug~