版本
Excel 2003
Windows XP
SimaPro 7.3.0 开发者版本
使用工作计算机,但在这台机器上被设置为管理员
Excel/VBA 中引用的库:Visual Basic for Applications;Microsoft Excel 11.0 对象库;OLE 自动化;Microsoft Office 11.0 对象库;Microsoft Forms 2.0 对象库;COM+ 1.0 管理类型库;COM MakeCab 1.0 类型库;COM+ 服务类型库;SimaPro Library
Me:初学者
我正在尝试做 的我正在使用一个名为 SimaPro 的程序,它存储“生命周期分析”信息的数据库。该程序具有内置的 COM 接口功能。该程序声明它确实支持 Excel/VBA(但它没有指定版本)。
我正在尝试将此程序和/或 COM 服务器连接到 excel,以便我可以通过 excel 与信息进行交互。
我所做
的我已经完成了他们列出的程序: -
打开 SimaPro
-注册 COM 服务器
-然后
我将以下代码粘贴到 VBA 中并尝试运行它。这段代码是软件公司提供的示例代码,我只编辑了SP.Server、SP.Alias、SP.Login和SP.OpenProject这几个字段(下面是编辑的)。
发生了什么
运行时错误:'-2147418113 (8000ffff)':
自动化错误
灾难性故障
问题 -
服务器名称正确吗?我已经在 COM 服务器上阅读了一些内容,但我不知道我放入它的方式是否是正确的“形式”
——它可能与某些已注册/未注册的 DLL 有关吗?我曾与公司的 IT 人员和软件程序员一起工作过。他们中没有一个人对 COM 非常熟悉,但有人认为 DLL 可能是问题所在。
谢谢你的帮助!!
这是我输入的代码:
Sub CreateProcess()
Dim SP As SimaProServer
Dim PC As Process
Dim PC2 As Process
Dim PL As ProcessLine
Dim Param As ParamLine
Dim Subs As Substance
Set SP = New SimaProServer
SP.Server = "Local Server"
SP.Alias = "C:\Documents and Settings\All Users\Documents\SimaPro\Database\"
SP.Database = "Professional"
SP.OpenDatabase
SP.Login "", ""
SP.OpenProject "PROJECT", ""
' Not project's actual name, not allowed to state name of project
SP.CreateSubstance "Air", Subs
Subs.CASNumber = "4-5-13"
Subs.Name = "Some substance"
Subs.DefaultUnit = "kg"
Subs.Update
SP.CreateProcess ptMaterial, PC
Set PL = PC.AddLine(ppProduct, -1)
PL.ObjectName = "Steel 2"
PL.UnitName = "kg"
PL.Amount = "2"
PL.Comment.Add ("My new created process")
PL.CategoryPath = "Chemicals\inorganic"
PC.Update
' create second material process Case
SP.CreateProcess ptMaterial, PC2
Set PL = PC2.AddLine(ppProducts, 0)
PL.ObjectName = "Case 2"
PL.UnitName = "kg"
PL.Amount = "10"
Set Param = PC2.AddParamLine(ptInputParameter, -1)
Param.Name = "A"
Param.Value = "2,3"
' add input from Steel
Set PL = PC2.AddLine(ppMaterialsFuels, -1)
' input from steel
PL.SetProduct "Introduction to SimaPro 7", ptMaterial, "Steel 2"
PL.Amount = "8"
PL.UnitName = "kg"
Set PL = PC2.AddLine(ppAirborneEmissions, -1)
' input from steel
PL.SetSubstance "Some substance", ""
PL.Amount = "A+1"
PL.UnitName = "kg"
PC2.Update
SP.Logout
SP.CloseDatabase
Set SP = Nothing
End Sub